Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
使用锁定方法的多线程asp.net_Asp.net_Multithreading - Fatal编程技术网

使用锁定方法的多线程asp.net

使用锁定方法的多线程asp.net,asp.net,multithreading,Asp.net,Multithreading,在这段代码中,我想使用锁定(此)方法在asp.net中使用多线程。如何使用它请解释我。我想在it方法中使用多线程,所以请 try { List<spEMS_MailSentSchedularListResult> dSchedularResult = ESManager.SendSchedularList(); if (dSchedularResult != null) { 试试看 { List dSchedular

在这段代码中,我想使用锁定(此)方法在asp.net中使用多线程。如何使用它请解释我。我想在it方法中使用多线程,所以请

    try
    {

        List<spEMS_MailSentSchedularListResult> dSchedularResult = ESManager.SendSchedularList();
        if (dSchedularResult != null)
        {
试试看
{
List dSchedularResult=ESManager.SendSchedularList();
if(dSchedularResult!=null)
{
//这里我想锁定方法,所以你能解释一下吗

            for (int i = 0; i < dSchedularResult.Count; i++)
            {
                try
                {
                    string strBody = "";

                    #region Creating STRBODY
                    strBody = AppConstant.MAIN_DIV_TAG_START + AppConstant.MAIN_TABLE_TAG_START_BGCOLOR.ToString() +

                                AppConstant.MAIN_TABLE_TR_TD_START_ALIGNMENT.ToString() +

                                AppConstant.MAIN_TABLE_TR_TD_END.ToString();
                    #endregion


                }
                catch (Exception ex)
                {
                    Page_Error(ex);
                }
            }
        }
    }
    catch (Exception ex)
    {
        Page_Error(ex);
    }
    finally
    {
        ESManager = null;
    }
}
for(int i=0;i

现在我已经提到了锁的代码是在哪里创建的,请给我肯定的答复,谢谢

您尚未明确要锁定代码的哪一部分

锁的一般用法是这样的

定义一个类级变量

private static object syncRoot = new Object();
当你使用

lock (syncRoot)
{
// your code to be locked.
}
希望有帮助


Milind看到了您的编辑。将要锁定的代码放在下面解决方案中的“//Your code to be locked”注释中。直接将该变量用于私有静态对象syncRoot=new object();当我想锁定方法,但我想在同一个方法中使用2个线程,所以1条记录对第2个线程是锁定的,而第二条记录对第2个线程是继续的。。。那么它能工作吗?现在,我很困惑,您上面解释的是对代码段应用锁,以便多个线程可以毫无问题地使用它,这就是我所展示的方式。现在,我理解对了吗!?嗨,milind,我需要的是一种方法,通过调用发送一封邮件和另一个链接来获取我在其中使用的线程。所以请你检查一下。