小编Mir*_*lal的帖子

C# - 文件关联拒绝访问注册表项"HKEY_CLASSES_ROOT"

我目前有一个程序,使用注册表设置文件关联(注意,它是一个.NET 2.0,所以我必须通过注册表方法).问题是,因为它试图写入HKCR,它可能会遇到管理问题(在其他机器上).是否有更通用的方法来设置文件关联(对于.NET 2.0),例如使用HKCU或其他不需要管理权限的方法.

string keyName = "Class";
string keyValue = "Class File";
string apppath = Application.ExecutablePath.ToLower() + " \"%1\"";
RegistryKey key;
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", keyValue);

RegistryKey iconkey;
key = Registry.ClassesRoot.CreateSubKey(keyName);
iconkey = key.CreateSubKey("DefaultIcon");
iconkey.SetValue("", Environment.CurrentDirectory + "\\resources\\musicfile.ico");

key = key.CreateSubKey("shell");
key = key.CreateSubKey("open");
key = key.CreateSubKey("command");
key.SetValue("", apppath);
Run Code Online (Sandbox Code Playgroud)

c# registry file-association

5
推荐指数
2
解决办法
1万
查看次数

并发客户端在C#套接字中发布

我正在研究客户端服务器应用程序,Windows Server和Linux Client.我正在使用多个并发客户端测试我的服务器.我尝试了来自客户端的20个并发连接,我注意到尽管所有20个请求都是相同的,但仍未处理一些请求.他们进入队列,由于某种原因轮到他们客户端关闭(客户端连接超时为5秒).

然后我添加了一个Thread.Sleep(1000),以检查它是否真的是异步但后来我意识到它不会处理其他请求,直到超时.尽管如此

  1. 它是异步的
  2. 在进入睡眠状态之前设置了ManualResetEvent.

现在我想知道我在这里失踪了什么,因为这主要发生在并发连接上?

public static void StartServer(IPAddress ipAddr, int port)
{
    //IPEndPoint serverEndPoint = new IPEndPoint(ipAddr, port);
    IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, port);
    Socket clientListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    try
    {
        clientListener.Bind(serverEndPoint);
        clientListener.Listen(500);
        Console.WriteLine("-- Server Listening: {0}:{1}",ipAddr,port);
        while (true)
        {
            resetEvent.Reset();
            Console.WriteLine("|| Waiting for connection");
            clientListener.BeginAccept(new AsyncCallback(AcceptConnection), clientListener);
            resetEvent.WaitOne();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}


public static void AcceptConnection(IAsyncResult ar)
{
    // Get the socket that handles the client request.
    Socket listener …
Run Code Online (Sandbox Code Playgroud)

c# sockets client-server winsock

0
推荐指数
1
解决办法
1451
查看次数