创建公共变量放置4个线程运行结果, 在运行线程前先请清空, 不你的线程反馈的结果是一个int 那么定义 int result1; int result2; int result3; int result4;调用线程前,以上变量清空, 然后在线程调用函数结尾处赋值。 最后在主进程中判断。 不过主进行中在每个调用线程后需要设置等待,否则程序直接执行完了。所以,你的逻辑本身就是有问题的,按你的要求此处线程不合理,因为step2依赖于step1的结果,这种情况直接写在进程里即可。
用委托实现delegate string funStep1Del(); funStep1Del del= new funStep1Del(funStep1); IAsyncResult re= del.BeginInvoke(); string result = del.EndInvoke(re); //在这里获取返回值 string funStep1();
在运行线程前先请清空,
不你的线程反馈的结果是一个int
那么定义
int result1;
int result2;
int result3;
int result4;调用线程前,以上变量清空,
然后在线程调用函数结尾处赋值。
最后在主进程中判断。
不过主进行中在每个调用线程后需要设置等待,否则程序直接执行完了。所以,你的逻辑本身就是有问题的,按你的要求此处线程不合理,因为step2依赖于step1的结果,这种情况直接写在进程里即可。
funStep1Del del= new funStep1Del(funStep1);
IAsyncResult re= del.BeginInvoke();
string result = del.EndInvoke(re); //在这里获取返回值
string funStep1();
1.订酒店
2.订飞机票
3.打车
4.收拾行李要想保证中间不出差错,你应该一步一步来,如果订不到酒店,就不要订飞机票了
如果想保证速度,可以同步进行,但是就会有一个问题,如果行李都收拾好了,但是订不到酒店,你的行程就必须取消了
可以定义个全局bool变量,任何一步没有成功,都将它置为false
等4个步骤都执行完,判断一下,然后进行后续处理
请问 step1 里面 怎么 判断 funStep1 是否结束 , funStep1是个耗时操作,因为这里不希望界面假死,所以用了线程
它不过是个方法,是启动线程用的,启动完就没它什么事了.
主线程想判断所有线程结束,你可以再开个线程5,在线程5里执行1234,然后thread.join(),等待开启的线程全部结束,然后执行后面的方法