Tag: .net

如何限制.NET应用程序中的I / O操作?

我正在开发一个应用程序(.NET 4.0,C#): 1.扫描文件系统。 2.打开并读取一些文件。 该应用程序将在后台运行,应该对磁盘使用率影响较小。 如果用户正在执行常规任务并且磁盘使用率很高,则不应该打扰用户。 反之亦然,如果没有人使用磁盘,应用程序可以更快。 主要问题是由于使用API​​(mapi32.dll)来读取文件,我不知道I / O操作的实际数量和大小。 如果我要求API做某事我不知道它读取多少字节来处理我的响应。 那么问题是如何监控和管理磁盘使用情况? 包括文件系统扫描和文件读取…… 检查标准性能监视器工具使用的性能计数器? 还是其他任何方式?

在标志上使用按位运算符

我有四面旗帜 Current = 0x1 Past = 0x2 Future = 0x4 All = 0x7 假设我收到过去和未来的两个标志( setFlags(PAST | FUTURE) )。 如何判断Past是否在其中? 同样,我如何判断Current不在其中? 这样我就不必测试每种可能的组合。

为什么在即将推出的.NET 4.0中没有类似IMonad 的东西

…与所有那些新的(如果我们计算IEnumerable并不是那么新)monad相关的东西? interface IMonad { SelectMany/Bind(); Return/Unit(); } 这将允许编写以任何monadic类型操作的函数。 或者它不是那么重要?

骰子面值识别

我正在尝试构建一个能识别两个6面骰子值的简单应用程序。 我正在寻找一些通用指针,甚至可能是一个开源项目。 两个骰子将分别为黑色和白色,分别为白色和黑色。 它们与相机的距离将始终相同,但它们在比赛场地上的位置和方向将是随机的。 骰子http://sofzh.miximages.com/c%23/www.freeimagehosting.net (不是最好的例子,表面将是更鲜明的颜色,阴影将消失) 我没有开发这种识别软件的经验,但我认为诀窍是首先通过搜索具有主导白色或黑色的方形轮廓来隔离脸部(图像的其余部分,即桌子/游戏)表面,将以明显不同的颜色),然后隔离点数计数。 自顶向下照明将消除阴影。 我希望所描述的场景如此简单(阅读:常见)它甚至可以用作开发OCR技术或类似计算机视觉挑战的开发人员的“介绍性练习”。 更新: 我做了一些进一步的谷歌搜索,并发现了这个video ,奇怪的是,这正是我正在寻找的。 看来OpenCV项目到目前为止是我最好的选择,我会尝试将它与其他项目,OpenCVDotNet或Emgu CV一起使用 。 更新: 仍在苦苦挣扎,无法让Emgu CV工作。 想法,指针,想法等仍然非常受欢迎!

在.NetCore项目中引用.Net 4.6.2项目(VS2017 15.4.4)

我有一个.Net核心2.0项目,需要在Visual Studio 2017(v 15.4.4)的同一解决方案中引用.Net 4.6.2项目(图片中的BLL和实体)。 我看到这篇文章 ,但是.Net版本4.6.2的事件,我仍然有问题。 在我的.Net核心2.0项目参考中,我有: 当我尝试使用.Net 4.6.2项目中定义的类时,我有以下错误:“无法解析symbole’BLL’”(对于BLL项目)。 您是否知道如何在net core 2.0项目中使用.Net 4.6.2项目?

multithreading服务,BackgroundWorker与ThreadPool?

我有一个.NET 3.5 Windows服务。 我正在使用一个小应用程序进行测试,该应用程序在启动后只是睡眠线程,随机时间间隔为300到6500毫秒。 我对这个问题有各种各样的疑问。 BackgroundWorker是否真的只适用于WinForms应用程序,或者这只是废话,究竟是如何调整到这种效果的呢? 我已经在这个问题和这个 问题中读到了关于ThreadPool的内容。 我不确定线程​​会持续半秒到几秒之间的问题对我来说有多大问题。 这个理由足以让人看到其他地方吗? 我自己最好只创建后台线程吗? 现实生活中的服务将轮询数据库中的待处理请求列表,为每个请求执行线程(限于一定数量的并发线程),每个线程将检查数据库中是否存在某些数据,如果它可以,或从流API下载,存储它,并返回该数据。 下载将是消耗最多时间的部分。 我真的希望在.NET 3.5 Framework中回答这个问题,但如果在.NET 4.0下有更好或更有效的方法来实现这一点,我也想了解它们。 更多信息的链接也非常受欢迎。

来自外部程序集的ResourceDictionary

我在下面的代码中有一个UnmanagedMemoryStream ,我怎样才能让对象从deserilizing它。 我试图从Assembly集中获取Resource (rd.xaml): string address = @”WpfControlLibrary1.dll”; Assembly skinAssembly = Assembly.LoadFrom(address); string name = skinAssembly.GetName().Name +”.g”; var manager = new ResourceManager(name, skinAssembly); ResourceSet rs = manager.GetResourceSet(CultureInfo.CurrentCulture, true, true); UnmanagedMemoryStream stream = (UnmanagedMemoryStream)rs.GetObject(“rd.baml”, true); 我无法将Stream的内容deserialize化为.net Object (在上面的例子中是一个Resource Dictionary )。 我怎样才能做到这一点? PS: BinaryFormatter在Deserialize操作时抛出exception。

生成pdf缩略图(开源/免费)

查看其他post无法找到满足我需求的适当解决方案。 试图将pdf文档的第一页作为缩略图。 这将作为服务器应用程序运行,因此不希望将pdf文档写入文件,然后调用第三个读取pdf的应用程序以在磁盘上生成映像。 doc = new PDFdocument(“some.pdf”); page = doc.page(1); Image image = page.image; 谢谢。

C#:声明和使用不同类型的generics类列表,如何?

具有以下generics类,其中包含string, int, float, long作为类型: public class MyData { private T _data; public MyData (T value) { _data = value; } public T Data { get { return _data; } } } 我想获得一个MyData的列表,其中每个项目将是不同的T 我希望能够从列表中访问项目并获取其值,如下面的代码所示: MyData myData = _myList[0]; // Could be , , … SomeMethod (myData.Data); 其中SomeMethod()声明如下: public void SomeMethod (string value); public void SomeMethod (int […]

c#在对象构造函数中启动异步方法 – 不好的做法?

我在一个类似的对象构造函数中有一些代码 delegate DataSet MyInvoker; public MyObject(Param1 p1) { // property sets here // … BeginMyAsyncMethod(); } public void BeginMyAsyncMethod() { // set some properties // … MyInvoker inv = new MyInvoker(SomeBeginMethod); inv.BeginInvoke(new AsyncCallback(SomeEndMethod), null); } 我的问题是: 这通常被认为是不好的做法吗? 在我的类中定义一个start方法(用户可以调用它来执行异步操作)会更好(或更好)吗? 这个答案给我的印象是,将它留给用户是不好的做法,虽然我特别谈到在构造函数中启动异步方法,而不是正确构造对象。