Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web服务中的共享内存字典(asmx)_C#_Web Services_List_Backgroundworker - Fatal编程技术网

C# Web服务中的共享内存字典(asmx)

C# Web服务中的共享内存字典(asmx),c#,web-services,list,backgroundworker,C#,Web Services,List,Backgroundworker,我有一本BGworkers(和int)字典,我在asmx Web服务上使用它。 此列表必须由调用此web服务的用户共享 列表类如下所示: sealed class ResourcesBG { public static readonly ResourcesBG Instance = new ResourcesBG(); private ResourcesBG() { BGWorkersShared = new Diction

我有一本BGworkers(和int)字典,我在asmx Web服务上使用它。 此列表必须由调用此web服务的用户共享

列表类如下所示:

sealed class ResourcesBG
{
    public static readonly ResourcesBG Instance = new ResourcesBG();
    private ResourcesBG()
    {
        BGWorkersShared =
                new Dictionary<int, BackgroundWorker>();
    }
    public Dictionary<Int32, BackgroundWorker> BGWorkersShared; 
密封类资源sbg
{
public static readonly ResourcesBG Instance=new ResourcesBG();
私人资源
{
BGWorkersShared=
新字典();
}
公共词典共享;
尝试了许多方法来实现这一目标,但没有成功。 奥尔索:

    public static class ResourcesBG
{

    public static volatile Dictionary<Int32, BackgroundWorker> BGWorkersShared =
                new Dictionary<int, BackgroundWorker>();
}
公共静态类资源sbg
{
公共静态易失性字典BGWorkersShared=
新字典();
}
主要原因是我可以监控系统中线程(bgworkers)的数量,并且可以随时中止它们。 每次我尝试不同的方法时,当我启动几个bgworkers时,我得到的列表计数为零


如何才能在此web服务中共享此列表?
BackgroundWorker
仅适用于Windows窗体应用程序,而不是ASMX web服务。此外,ASMX是一种旧技术,不应用于新开发。WCF或ASP.NET web API应用于所有web服务客户端和服务的新开发一个提示:微软已经退出了MSDN。我完全同意,但这不是一个新的开发,我正在开发一个旧的asmx Web服务,allready已经运行了几年。你仍然不能在Asmxis it推荐或事实中使用BackgroundWorker?(因为它对我来说运行良好)ASP.NET和任务并行扩展已经为您提供了更好的方法,为什么不创建并执行异步任务,让IIS处理线程管理呢?