10个线程执行同一个方法!在线等。!100分!
大家好, 我想请教下, 用10个线程! 执行同一个方法, 参数不同!!怎么写代码 , 方法是执行网上查询的一个功能。通过不同参数!!QQ504402105 --------------------编程问答-------------------- 不要 用 LOCK的, 没用,这样还是一个线程!!! --------------------编程问答-------------------- 顶贴!!!! --------------------编程问答--------------------
--------------------编程问答-------------------- 那就起10个线程,分别设置不同的参数去执行,
for (int i = 0; i < 10; i++)
{
Thread th = new Thread(() =>
{
//调用方法
});
th.Start();
}
记得执行完了再同步,可以看看线程池! --------------------编程问答-------------------- 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..
}
} --------------------编程问答-------------------- --------------------编程问答--------------------
public void test()--------------------编程问答-------------------- 同15楼 --------------------编程问答-------------------- 15楼你的参数是怎么进去的?我感觉这个问题的重点不是多线程应该是传参吧? --------------------编程问答--------------------
{
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);
}
th.Start(i);的时候,会将参数i传入函数体中 --------------------编程问答-------------------- 不是呀,大哥们!!! 开多个线程执行同一个方法,会造成 线程错乱!! --------------------编程问答--------------------
何为线程错乱? --------------------编程问答--------------------
要是有返回值的方法怎么办啊? --------------------编程问答-------------------- for (int i = 0; i < 10; i++)
{
Thread th = new Thread((i) =>
{
//调用方法
});
th.Start();
}
--------------------编程问答-------------------- 奇怪,如果你执行的方法里面会用到公用的变量,那必须锁撒,如果没用到,你直接开10个线程1起跑就行了撒. 莫名其妙~~~ --------------------编程问答--------------------
看来楼主没有线程同步的概念。
微软在这方面做了大量的工作,提供了很多方法,网络上一搜一大把。。。 --------------------编程问答--------------------
这说明设计这个“方法”的程序员写出了bug程序,而不是线程的问题。 --------------------编程问答-------------------- 建议楼主在网上看一下backgroundworker控件的用法
补充:.NET技术 , C#