C#多线程问题。。

QQ348191658 2010-09-13 09:51:50
我需要递归用。。

比如这样。。

mainMethod()
{
thread t1 = new thread(myMethod);
t1.start();
}

myMethod()
{
int i = 2;
mainMethod();
}

我想实现这样的过程。。但是失败了。。
不知道具体怎么用。。求教。。
...全文
178 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
c520120 2010-09-14
  • 打赏
  • 举报
回复
应该用异步回调比较好
hjx398 2010-09-14
  • 打赏
  • 举报
回复
线程不是越多越快,要看你有多少个处理器.
yudeli 2010-09-14
  • 打赏
  • 举报
回复
学习一下。。。
powerchuangwai 2010-09-14
  • 打赏
  • 举报
回复
学习一下。递归是一个有意思的东西。
uvvvw 2010-09-14
  • 打赏
  • 举报
回复
学习学习
大飞飞虫 2010-09-14
  • 打赏
  • 举报
回复
把递归放在线程的委托过程里面 ,线程只调用这个过程。
除非你是真的每递归一次要新开一个线程,那你这几个线程间的同步会是大问题
thy38 2010-09-14
  • 打赏
  • 举报
回复
异步回调吧
myhope88 2010-09-13
  • 打赏
  • 举报
回复
不懂,帮顶下
KeepSayingNo 2010-09-13
  • 打赏
  • 举报
回复
尝试下使用回调函数,线程是有生命周期的,用完了必须释放
shishangdere_2007 2010-09-13
  • 打赏
  • 举报
回复
在Main 方法中写上
Thread threadWorking = new Thread(new ThreadStart(Run));

threadWorking.start();
shishangdere_2007 2010-09-13
  • 打赏
  • 举报
回复
public volatile bool Stopping = false;
public bool nothingToDo = false;
public void main()
{

}
public void Run()
{
while(!Stopping)
{
try
{
Init();
while(!Stopping)
{
bool ret = Working();
}
}
catch(ThreadAbortException ex)
{

}
catch(Exception ex)
{

}
finally
{
try
{
Clear();
}
catch()
{

}
}
if(Stopping)
break;
}

}
/// <summary>
/// 重复操作步骤
/// </summary>
/// <returns></returns>
public bool Working()
{

}

public void Init()
{
}

public void Clear()
{
}
cjh200102 2010-09-13
  • 打赏
  • 举报
回复
可能楼主对线程理解错了
dancingbit 2010-09-13
  • 打赏
  • 举报
回复
这种代码说明lz对线程的机制完全不了解,产生递归并不是仅仅因为直接或间接对某方法自身的调用,虽然形式的确如此,更为重要的是对方法的再次调用时,原来的调用不会终结,而你的代码中一没有终止条件,二,创建新线程后,原来的线程自然终结,整个过程就是不断地创建新线程,不断地销毁旧线程,线程也不是这么用的。
QQ348191658 2010-09-13
  • 打赏
  • 举报
回复
大家帮帮忙嘛。。555
QQ348191658 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ckl881003 的回复:]

这个明显有问题啊,不知道LZ为什么要这样调用?
[/Quote]

能说下有什么问题么。。别光说有问题啊。。

递归肯定是有终止条件的。。我只是简单的说明一下而已。。
QQ348191658 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rubbyzk 的回复:]

你这个运行起来MS会无限开新线程
[/Quote]

当然这个递归肯定是有终止条件的。。我只是简单的说明一下而已。。

thread t1 = new thread(new ThreadStart(myMethod));

另外。。这个我之前也试过。。好像不行。。
ckl881003 2010-09-13
  • 打赏
  • 举报
回复
这个明显有问题啊,不知道LZ为什么要这样调用?
RubbyZK 2010-09-13
  • 打赏
  • 举报
回复
你这个运行起来MS会无限开新线程
RubbyZK 2010-09-13
  • 打赏
  • 举报
回复

mainMethod()
{
thread t1 = new thread(new ThreadStart(myMethod));
t1.start();
}

myMethod()
{
int i = 2;
mainMethod();
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧