Articles of .net

ManagedThreadID和操作系统ThreadID之间的关系

我正在研究一个multithreading的C#Windows应用程序,这个应用程序会频繁调用本地dll。 这些阻止有时可能持续相当长时间的电话。 在某些情况下,我想从主线程中取消一些工作线程的阻塞调用。我使用的本地API提供了一个用于此目的的函数: HRESULT CancelBlockingCall(DWORD ThreadID) 虽然CancelBlockingCall()的文档不是很清楚,但我相信我需要传递阻塞在调用上的OS级线程的ThreadID。 根据我从CancelBlockingCall()得到的返回码,我意识到Thread.ManagedThreadID不是我所需要的。 我在msdn上find了以下内容(请参阅注释) : 操作系统ThreadId与托pipe线程没有固定关系,因为非托pipe主机可以控制托pipe线程和非托pipe线程之间的关系。 具体而言,复杂的主机可以使用CLR Hosting API来针对相同的操作系统线程调度多个托pipe线程,或者在不同的操作系统线程之间移动托pipe线程。 这是否意味着我没有办法正确调用一个托pipe线程的CancelBlockingCall()? 是否无法确定托pipe线程当前正在执行的操作系统级线程的线程ID?

鼠标hover事件上的Hightlight Listbox项目

我试图改变一个listview项目的背景颜色时,鼠标hover在它 我有一个鼠标hover事件,但是如何在鼠标hover在项目上时添加“突出显示”效果? private void pinnedAppsListBox_MouseHover(object sender, EventArgs e) { }

用多个视图构buildC#.NET窗口应用程序

我正在重写一个旧的应用程序,并将其作为尝试C#和.NET开发的好机会(我通常在C中做了很多插件)。 应用程序基本上是一个收集数据的计时器 它有一个开始视图和一个button来开始测量。 在测量过程中,根据用户想要查看的信息,该应用程序有五个不同的视图。 切换视图的最佳做法是什么? 从开始运行? 在运行视图之间? 思路: 使用一个表单并隐藏并显示控件 使用一个开始窗体,然后使用TabControl的窗体 使用六个单独的表格

计算Windows进程的CPU使用率?

给定一个进程ID,我怎样才能从这个进程的C#加载CPU的负载? 我已经尝试使用PerformanceCounter在c#中所述计算特定应用程序的CPU使用率 我还尝试在一个时间范围内手动取得进程的总CPU时间的两个值,并将delta-cpu-time与delta-total-time分开。 这两种方法似乎一开始工作正常,但如果我把我的应用程序旁边的Windows任务pipe理器我的应用程序总是显示约两倍的任务pipe理器。 我试图用10ms到10sec的各种时间步长进行更新,并一直得到相同的结果。 嗯,当我写这个时,意识到这可能是某种双核问题。

修整string并将其转换为小写字符的最快方法

我已经写了一个类来处理string,我有以下问题:传入的string可以在string的开始和结尾处带有空格。 我需要修剪string的空格,并将其转换为小写字母。 我的代码到目前为止: var searchStr = wordToSearchReplacemntsFor.ToLower(); searchStr = searchStr.Trim(); 我找不到任何function来帮助我在StringBuilder 。 问题是这个类应该尽可能快地处理大量的string。 所以我不想为每个类处理的string创build2个新的string。 如果这是不可能的,我会深入处理algorithm。

.net安装项目强制重新安装新的文件replace

我有一个安装项目,安装了几个项目和几个外部文件(其中之一是一个SQLite数据库) – 一切正常,直到我最近修改安装项目中包含的基础数据库文件。 现在,每次我尝试重新安装项目新的数据库文件不会取代以前安装的一个…我可以强迫它以某种方式在VS或使安装实现这是一个新的版本,所以文件被取代? 最好的祝福, 卡洛斯·欧鲁

机器在.NET中的域名?

有一个简单的方法来做到这一点,我不能相信没有。 我已经通过networking扫描,发现像20个不同的方法来find当前用户在哪个域,但没有获得当前机器的域(或工作组)。 在非托pipe的c + +这是通过检索: WKSTA_INFO_100 *buf; NetWkstaGetInfo(NULL, 100, (LPBYTE*)buf); domain_name = pBuf->wki100_langroup; 有人可以帮助我,如果有一种方式获得相同的信息托pipeC#本地? 编辑1: 伙计们,请阅读这个问题。 我不是在寻找用户的域名。

如何检测Windows 8操作系统使用C#4.0?

我必须在我的C#Windows应用程序中检测Windows 8操作系统并执行一些设置。 我知道我们可以使用Environment.OSVersion检测Windows 7,但是如何检测Windows 8? 提前致谢。

2个WCF服务进程可以监听相同的端口吗?

我知道两个进程不能监听同一个端口,但是当端口80中的HTTP请求发生时 ,我知道Windows可以接收数据包并重新路由到相应的服务。 我只是不知道它是否也发生在其他端口和协议(例如net.tcp)。

UNCpath不适用于.NET?

我正在运行一个非常简单的程序,它试图列出使用UNC格式指定的同一台计算机上的文件夹中的文件(如http://msdn.microsoft.com/zh-cn/library/windows/中所述)桌面/ aa365247%28v = vs.85%29.aspx ): static string rootDir = @"\\?\d:\share\input"; static void Main(string[] args) { char[] invlidChars = Path.GetInvalidPathChars(); foreach (char invChar in invlidChars) { if (rootDir.Contains(invChar.ToString())) { Console.WriteLine("InvChar – {0}", invChar); } } string[] matchFiles = Directory.GetFiles(rootDir); } static string rootDir = @"\\?\d:\share\input"; static void Main(string[] args) { char[] invlidChars = Path.GetInvalidPathChars(); foreach (char […]