C# &引用;对象引用未设置为对象的实例;回调错误

C# &引用;对象引用未设置为对象的实例;回调错误,c#,multithreading,asynchronous,push-notification,ihttpasynchandler,C#,Multithreading,Asynchronous,Push Notification,Ihttpasynchandler,我正在使用IHTTPassynchandler和XMLHTTPRequest通过以下URL将消息推送到客户端: 但我做了一些更改,实际上这个示例只基于一个客户端,我必须向多个客户端发送消息,所以我做了这些更改 public void ProcessRequest(HttpContext context) { var recipient = context.Request["recipient"]; lock (_obj) {

我正在使用IHTTPassynchandler和XMLHTTPRequest通过以下URL将消息推送到客户端: 但我做了一些更改,实际上这个示例只基于一个客户端,我必须向多个客户端发送消息,所以我做了这些更改

public void ProcessRequest(HttpContext context)
{
        var recipient = context.Request["recipient"]; 
        lock (_obj)
        {               
            string[] totalfrnds = ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20").Split(',');//<- This is just an example for many clients

            foreach (var a in totalfrnds)
            {
                var handle = MyAsyncHandler.Queue.Find(q => q.SessionId == a);//<- check who's client is online or not

                if (handle != null)
                {
                    handle.Message = context.Request["message"];

                    handle.SetCompleted(true);
                }
            }
        }
 }
public void ProcessRequest(HttpContext上下文)
{
var recipient=context.Request[“recipient”];
锁(_obj)
{               
字符串[]totalfrnds=(“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20”).Split(',');//q.SessionId==a)//
如何解决此类错误

您有一个-更改您的
SetCompleted
方法,以便在调用时复制
Callback
,例如

var handler = Callback;
if (isCompleted && handler != null)
{
    handler(this);
}

W3wp.exe中异步线程的限制是什么

这是在服务器上的
machine.config
文件中配置的,特别是节中的maxWorkerThreads元素,根据文档,默认值为20

配置每个CPU用于进程的最大工作线程数。例如,如果在单处理器服务器上此值为25,ASP.NET将使用运行时API将进程限制设置为25。在双处理器服务器上,此限制设置为50。默认值为20。maxWorkerThreads的值必须为e等于或大于配置部分中的minFreeThread属性设置


谢谢你的回答。你能用适当的例子简单地解释一下吗?@ankitGupta“给我一个适当的解决方案”-请求帮助的方式不太正确!此外,我已经给了你一个正确的解决方案。事实上,我试图解决过去几天的错误,但没有找到解决方案,这就是我请求你解决的原因。我不理解解决方案。你能描述一下吗it@ankitGupta你问了两个问题-据我所知,我已回答-我不知道您还想让我告诉您什么,因为您的问题没有改变。您的解决方案不起作用。再次出现相同的错误。