小编cao*_*cao的帖子

使用SocketAsyncEventArgs时是否可以删除ExecutionContext和Thread分配?

如果您分析使用的简单客户端应用程序SocketAsyncEventArgs,您将注意到ThreadExecutionContext分配.

分配的来源是SocketAsyncEventArgs.StartOperationCommon使用创建ExecutionContext的副本ExecutionContext.CreateCopy().

ExecutionContext.SuppressFlow似乎是抑制这种分配的好方法.但是,此方法本身将在新线程中运行时生成分配.

我该如何避免这些分配?

c# sockets multithreading allocation asyncsocket

29
推荐指数
1
解决办法
875
查看次数

是否有用于以全屏(弹出)方式打开具有特定消息ID的Gmail撰写窗口的URL

我使用新的Gmail API为我的用户创建草稿.API响应提供新创建的消息ID.

然后我可以用URL打开撰写窗口https://mail.google.com/mail/#drafts?compose=[message-id].但是我想打开一个全屏(弹出)组合窗口.是否有URL?当然,必须使用消息ID对此URL进行参数化.

更确切地说,这就是我得到的,这就是我想要的.

email gmail google-api google-api-client gmail-api

18
推荐指数
1
解决办法
2759
查看次数

为什么SocketAsyncEventArgs的Completed回调经常在新创建的线程中执行而不是使用有界线程池?

我有一个简单的客户端应用程序,它以低吞吐量从网络接收字节缓冲区.这是代码:

private static readonly HashSet<int> _capturedThreadIds = new HashSet<int>();

private static void RunClient(Socket socket)
{
    var e = new SocketAsyncEventArgs();
    e.SetBuffer(new byte[10000], 0, 10000);
    e.Completed += SocketAsyncEventsArgsCompleted;

    Receive(socket, e);
}

private static void Receive(Socket socket, SocketAsyncEventArgs e)
{
    var isAsynchronous = socket.ReceiveAsync(e);
    if (!isAsynchronous)
        SocketAsyncEventsArgsCompleted(socket, e);
}

private static void SocketAsyncEventsArgsCompleted(object sender, SocketAsyncEventArgs e)
{
    if (e.LastOperation != SocketAsyncOperation.Receive || e.SocketError != SocketError.Success || e.BytesTransferred <= 0)
    {
        Console.WriteLine("Operation: {0}, Error: {1}, BytesTransferred: {2}", e.LastOperation, e.SocketError, e.BytesTransferred);
        return;
    }

    var …
Run Code Online (Sandbox Code Playgroud)

c# multithreading winsock asyncsocket threadpool

10
推荐指数
1
解决办法
788
查看次数

如何获取CLR加载的类型列表?

获取程序集中定义的类型列表很简单:assembly.GetTypes().

我感兴趣的是运行时当前加载的类型列表.更具体地说,我想获得已加载的已关闭泛型类型的列表.

我想CLR会保留已加载类型的列表.我认为我可以使用CLR MD来获取此列表,但我想在当前进程中获取并使用该列表.使用CLR MD,我必须启动外部进程,捕获加载的类型列表,将其转储到文件,然后从活动进程中读取它.

是否有调试或诊断API提供当前进程的已加载类型列表?

.net reflection debugging clr

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