none
“多线程”问题,Why??? RRS feed

  • 问题

  • Master, 

         存在“12个错误”和“3个警告”啊。

    代码如下: 

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace MoreThread
    {
       public class ETLProcess
        {
           public List<Thread> theadlists;//线程列表

           public ETLProcess()
           {   
           }

           public bool CreateThead(string ThreadID, string ETLTableName)
           { 
               bool  flag=false;
               try
               {
                   Thread th = new Thread(new ParameterizedThreadStart(Do));

    问题一:

    错误11“Do”的重载均与委托“System.Threading.ParameterizedThreadStart”不匹配E:\Test\MoreThread\MoreThread\ETLProcess.cs2239MoreThread

           提示不匹配,这是怎么回事啊?   应该如何修改?

                   th.IsBackground = true;
                   th.Name = ThreadID;
                   th.Start(ETLTableName);
                   th.Sleep(10000);

    问题二:

    错误12无法使用实例引用来访问成员“System.Threading.Thread.Sleep(int)”;请改用类型名来限定它E:\Test\MoreThread\MoreThread\ETLProcess.cs2616MoreThread

    这是怎么回事,应该怎样修改?



                   theadlists.Add(th);
                   flag = true;
               }
               catch (Exception ex)
               {
                   flag = false;         
               }

               return flag;
           }

    问题三:如何获取“Do”方法返回的参数呢???

           public string  Do(string  str)
           {
               return str;
           }



           public bool SuspendThead(int index)
           {
              bool flag = false;
              try
              {
                  theadlists[index].Suspend();

    问题四:

    警告3“System.Threading.Thread.Suspend()”已过时:“"Thread.Suspend has been deprecated.  Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources.  http://go.microsoft.com/fwlink/?linkid=14202"”E:\Test\MoreThread\MoreThread\ETLProcess.cs 4915MoreThread

    提示“已过时”,怎么回事???     换用什么方法不过时呢???

                  flag = true;
              }
              catch (Exception ex)
              {
                  flag = false;
              }

              return flag;
           }


           public bool SuspendAbort(int index)
           {
               bool flag = false;
               try
               {
                   theadlists[index].Abort();
                   flag = true;
               }
               catch (Exception ex)
               {
                   flag = false;
               }

               return flag;
           }
        }
    }


    Science and technology is my lover.


    2012年12月28日 9:10

答案

全部回复