当前位置:编程学习 > C#/ASP.NET >>

急寻高手,帮帮忙吧,这个该怎么写:C#for循环生成线程顺序对一个函数执行操作。

C#用for循环生成线程,生成的线程对函数A执行操作。等执行完函数A之后,终止该线程,然后继续for循环,再生成一个线程,再对函数A进行操作,等执行完函数A之后,终止该线程,。。。。继续执行for循环,直至for 循环结束,函数A不能加静态属性。线程必须生成、终止,再生成、在终止。这个该怎么写呢?求教高手急寻高手,这个程序我写了好几天了,也没有写出来。哪位高手会,帮下小弟,最好给个例子 --------------------编程问答--------------------
for(int i=0;i<5;i++)
{
var t=new Thread(A);
t.Start();
t.Join();
}

不知道你这样做有什么特殊的意义 --------------------编程问答--------------------
        public Form1()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (Int32 i = 0; i < 1000; i++)
            {
                Thread t = new Thread(new ParameterizedThreadStart(Foo));
                t.IsBackground = true;
                t.Start(i);
                t.Join();
            }
        }

        private void Foo(Object o)
        {
            this.Text = "Thread " + o.ToString();
            Thread.Sleep(3000);
        }


--------------------编程问答-------------------- 我做的这个实际上是一个通过tcp传输数据的函数,因为这个函数要独占一些东西,需要加锁,所以必须等一个文件传完,释放锁之后才能传下一个文件。 --------------------编程问答-------------------- 三楼的代码再加个锁。以保证资源的独占
private void Foo(Object o)
        {
            lock(this)
             {
               this.Text = "Thread " + o.ToString();
               Thread.Sleep(3000);
             }
        }
--------------------编程问答-------------------- class Program
    {
        static EventWaitHandle _workEvent = new ManualResetEvent(false);
        public static void Main()
        {
            myThread t = new myThread();

            while (true)
            {
                string s = Console.ReadLine();
                t.Run(s);
            }
        }
    }

    class myThread
    {
        Thread _thread;
        object _state;
        EventWaitHandle _workEvent;

        public myThread()
        {
            _workEvent = new ManualResetEvent(false);

            _thread = new Thread(new ThreadStart(invoke));
            _thread.IsBackground = true;
            _thread.Start();
        }

        void invoke()
        {
            while (_workEvent.WaitOne())
            {
                A();
                _workEvent.Reset();
            }
        }

        public bool IsBusy
        {
            get
            {
                return _workEvent.WaitOne(0);
            }
        }

        public void Run(object state)
        {
            if (!IsBusy)
            {
                _state = state;
                _workEvent.Set();
            }
        }

        public void A()
        {
            Console.WriteLine(string.Format("接收到输入信息:{0}", _state));
        }
    } --------------------编程问答-------------------- 没加队列,只简单写了一个大概 --------------------编程问答-------------------- 好傻的做法,还循环开线程,看不出来有什么意义。
还不如开一个发送线程,把要发送的东西往队列里面一扔就完事了。优雅100倍 --------------------编程问答--------------------
引用楼主  的回复:
C#用for循环生成线程,生成的线程对函数A执行操作。等执行完函数A之后,终止该线程,然后继续for循环,再生成一个线程,再对函数A进行操作,等执行完函数A之后,终止该线程,。。。。继续执行for循环,直至for 循环结束,函数A不能加静态属性。线程必须生成、终止,再生成、在终止。这个该怎么写呢?求教高手急寻高手,这个程序我写了好几天了,也没有写出来。哪位高手会,帮下小弟,最好给个例子



对楼主极度无语。

 for (int i = 0; i < 10; i++)
            {
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(SendMessage));
                thread.Start();
            }


public void SendMessage()
{

}

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,