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

10个线程执行同一个方法!在线等。!100分!

大家好, 我想请教下, 用10个线程! 执行同一个方法, 参数不同!! 
怎么写代码  , 方法是执行网上查询的一个功能。通过不同参数!!QQ504402105 --------------------编程问答-------------------- 不要  用 LOCK的, 没用,这样还是一个线程!!! --------------------编程问答-------------------- 顶贴!!!! --------------------编程问答--------------------

            for (int i = 0; i < 10; i++)
            {
                Thread th = new Thread(() => 
                {
                    //调用方法
                });
                th.Start();
            }

--------------------编程问答-------------------- 那就起10个线程,分别设置不同的参数去执行,

记得执行完了再同步,可以看看线程池! --------------------编程问答-------------------- for (int i = 0; i < 10; i++)
            {
                Thread th = new Thread(() => 
                {
                    //调用方法
                });
                th.Start();
            }

--------------------编程问答-------------------- 如果方法内没有用到静态的字段,而且没有以ref形式输入的共有数据,那就直接用就可以了。否则的话就得具体问题具体分析了。 --------------------编程问答-------------------- 有问题嘛 --------------------编程问答-------------------- 说实话,我根本没明白楼主的意思,10个线程调用同一个方法,你就用10个线程去调用好了,有什么问题啊?好像不搭界嘛。 --------------------编程问答-------------------- 一个会,两个就不会了,在csdn上类似问题有不少。 --------------------编程问答-------------------- 调用实例方法
--------------------编程问答-------------------- 楼主是不是想问其他的啊 同时执行 ? 还是。。。 --------------------编程问答-------------------- 点此进入多线程处理

LZ其实只要你能处理的来一个 10个就能搞定了 --------------------编程问答-------------------- 简单的包装一个
class Run
{
   object [] Args;
   void Run()
   { 
     // to do..
   }
} --------------------编程问答--------------------
引用 9 楼 sp1234 的回复:
一个会,两个就不会了,在csdn上类似问题有不少。
--------------------编程问答--------------------
        public void test()
        {
            for(int i=0;i<10;i++)
            {            
                Thread th = new Thread(new ParameterizedThreadStart(threadMethod));
                th.Start(i);
            }
        }

        public void threadMethod(object para)
        {
            Console.WriteLine("Parameter is " + (int)para);
        }
--------------------编程问答-------------------- 同15楼 --------------------编程问答-------------------- 15楼你的参数是怎么进去的?我感觉这个问题的重点不是多线程应该是传参吧? --------------------编程问答--------------------
引用 17 楼 wjfwd2009 的回复:
15楼你的参数是怎么进去的?我感觉这个问题的重点不是多线程应该是传参吧?

th.Start(i);的时候,会将参数i传入函数体中 --------------------编程问答-------------------- 不是呀,大哥们!!! 开多个线程执行同一个方法,会造成 线程错乱!! --------------------编程问答--------------------
引用 19 楼 yuha11223344 的回复:
不是呀,大哥们!!! 开多个线程执行同一个方法,会造成 线程错乱!!

何为线程错乱? --------------------编程问答--------------------
引用 18 楼 bunliney 的回复:
引用 17 楼 wjfwd2009 的回复:

15楼你的参数是怎么进去的?我感觉这个问题的重点不是多线程应该是传参吧?

th.Start(i);的时候,会将参数i传入函数体中

要是有返回值的方法怎么办啊? --------------------编程问答-------------------- for (int i = 0; i < 10; i++)
  {
  Thread th = new Thread((i) =>  
  {
  //调用方法
  });
  th.Start();
  }
--------------------编程问答-------------------- 奇怪,如果你执行的方法里面会用到公用的变量,那必须锁撒,如果没用到,你直接开10个线程1起跑就行了撒. 莫名其妙~~~ --------------------编程问答--------------------
引用 19 楼 yuha11223344 的回复:
不是呀,大哥们!!! 开多个线程执行同一个方法,会造成 线程错乱!!

看来楼主没有线程同步的概念。
微软在这方面做了大量的工作,提供了很多方法,网络上一搜一大把。。。 --------------------编程问答--------------------
引用 19 楼 yuha11223344 的回复:
不是呀,大哥们!!! 开多个线程执行同一个方法,会造成 线程错乱!!


这说明设计这个“方法”的程序员写出了bug程序,而不是线程的问题。 --------------------编程问答-------------------- 建议楼主在网上看一下backgroundworker控件的用法
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,