我一直用c ++和java编写我的生活,但在C#上,我觉得这是一个完全不同的动物.
如果在c#中的Dictionary容器中发生哈希冲突,它会做什么?或者它甚至检测到碰撞?
在SDL中类似容器中发生冲突的情况下,有些会使键值部分将数据链接到键值部分,如链表,或者有些人会尝试找到不同的哈希方法.
[2010年6月4日上午10:56更新]
我试图为每个用户制作一个计数器.并且设置用户#没有定义,它可以增加或减少.我期待数据的大小超过1000.
所以,我想:
Hashmap是我的解决方案,似乎Dictionary与c#中的hashmap相似...
可能重复:
C#/ .NET:如何从线程中获取线程ID?
我如何获得与在Visual Studio中看到的相同的线程ID?
我试过用Thread.CurrentThread.ManagedThreadId,但我的数字不同.
我得到35,38,39等,但在Visual Studio中我有10596,893等...
(发布这个答案,因为我无法找到如何在任何地方执行此操作的完整说明,所以我认为它可能对某人有一些价值)
如何设置Microsoft .Net中特定线程的处理器关联?设置进程的亲和性是微不足道的System.Diagnostics.Process.ProcessorAffinity,但是System.Threading.Thread类没有提供这样的功能,并且.Net不保证托管线程链接到任何特定的操作系统线程.
Dynamics CRM 2011内部部署.(但是在远离Dynamics CRM的许多情况下存在这个问题.)
CRM插件有一个切入点:
void IPlugin.Execute(IServiceProvider serviceProvider)
(http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iplugin.execute.aspx)
serviceProvider是对插件执行上下文的引用.插件所做的任何有用的事情都需要访问serviceProvider或其成员.
有些插件很大且很复杂,包含几个类.例如,我正在开发一个插件,它有一个多次实例化的类.这个类需要使用serviceProvider.
从所有需要它的类访问serviceProvider的一种方法是向所有这些类添加属性,然后设置该属性.或者为每个类所需的serviceProvider部分添加属性.这些方法中的任何一种都会导致大量重复的代码.
另一种方法是在线程范围内有一个全局变量.但是,根据http://msdn.microsoft.com/en-us/library/cc151102.aspx,一个"不应该在插件中使用全局类变量".
那么访问serviceProvider而不在任何地方传递它的最佳方法是什么?
PS如果示例有帮助,serviceProvider提供对日志记录对象的访问.我希望几乎每个班级都能登录.我不想将对日志记录对象的引用传递给每个类.
我需要使用此代码从运行时创建的窗口获取线程 ID
System.Windows.Window MyWindow = new System.Windows.Window();
MyWindow.Show();
Run Code Online (Sandbox Code Playgroud)
我正在使用窗口处理程序
IntPtr WindowHandle = (new WindowInteropHelper(MyWindow)).Handle;
Run Code Online (Sandbox Code Playgroud)
如何从窗口或其相应的处理程序中获取线程 ID?
我正在尝试 P/Invoke C# 中的NotifyServiceStatusChange 事件来检查服务何时停止。我设法让它编译并运行,没有任何错误,但是现在,当我停止服务时,它似乎不想通知它 dead。有什么想法吗?您可以通过将此代码复制到空白控制台应用程序中来测试它;只需确保将“我的服务名称”替换为您的服务名称(下面有该字符串的两个实例)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public delegate void StatusChanged(IntPtr parameter);
public class SERVICE_NOTIFY : MarshalByRefObject
{
public uint dwVersion;
public StatusChanged pfnNotifyCallback;
public IntPtr pContext;
public uint dwNotificationStatus;
public SERVICE_STATUS_PROCESS ServiceStatus;
public uint dwNotificationTriggered;
public IntPtr pszServiceNames;
};
public struct SERVICE_STATUS_PROCESS {
public uint dwServiceType;
public uint dwCurrentState;
public uint dwControlsAccepted;
public uint dwWin32ExitCode;
public …Run Code Online (Sandbox Code Playgroud)