先上代码public bool Start()
{
if (bTrue)
{
doSomething();
//Thread t = new Thread(doSomething);
//t.Start();
return true;
}
else
{
return false;
}
}这是我写的动态链接库里的一个方法,要求有一个bool类型的返回值。问题是doSomething()是需要一直持续运行的,只要开始运行就可以返回True值了,但是如果返回值,函数体就运行结束了。如果采用注释掉的代码,用多线程的方法是可以实现的,但我不希望这样解决。请问高手有没有什么其他的方式解决。
{
if (bTrue)
{
doSomething();
//Thread t = new Thread(doSomething);
//t.Start();
return true;
}
else
{
return false;
}
}这是我写的动态链接库里的一个方法,要求有一个bool类型的返回值。问题是doSomething()是需要一直持续运行的,只要开始运行就可以返回True值了,但是如果返回值,函数体就运行结束了。如果采用注释掉的代码,用多线程的方法是可以实现的,但我不希望这样解决。请问高手有没有什么其他的方式解决。
如果 doSomething(); 是持续运行,不返回的话 Start() 也就永远不会结束
---------------------------------------- 您能否说具体一些,没太明白
try
{
throw new Exception();
}
catch
{
return 1;
}
finally
{
这些代码在return后执行
}
谢谢,试了一下,虽然执行了return,但还是没有返回,阻塞在了finally里面
如果确实需要在同一个线程内部做, 可以使用 Fiber 来做。
我在使用类似 EnumWindows 这样的函数时候,又需要使用 foreach 来枚举的时候,就是这样的。
此时的断点在++iterator 的地方。
当需要枚举下一个时候,切换进纤程执行。