首页 新闻 搜索 专区 学院

请教一个关于后台执行函数的问题

0
悬赏园豆:50 [已关闭问题]

比如说我有一个函数,代码如下:

Code
public bool OpenItem()
{
//这里可能需要执行30S
System.Threading.Thread.Sleep(30 * 1000);
    
return true;
}

 

 

也就是说,我在调用OpenItem函数时,30S后才回给我一个返回值,请问有什么办法调用OpenItem函数时立即给我个返回值?并且System.Threading.Thread.Sleep(30 * 1000);继续执行。
谢谢!
菜鸟老师的主页 菜鸟老师 | 初学一级 | 园豆:160
提问于:2009-05-17 14:23
< >
分享
其他回答(4)
0

那个返回值和你的要运行30S的代码没有关系? 如果是这样,为啥还要写在一个函数中?

即使用异步方法调用,程序不执行到REUTN语句,如何知道返回值?

taia | 园豆:170 (初学一级) | 2009-05-17 15:15
0

可以通过委托异步的来执行。

GWPBrian | 园豆:428 (菜鸟二级) | 2009-05-17 18:30
0
Azuresong | 园豆:3565 (老鸟四级) | 2009-05-17 18:35
0

为什么要把这两个东东写在一起呢?你就说实际解决的问题吧,如果只是要异步执行。

处理的时候出现等待窗体的问题,那么你这样的方法是错的,应该是线程异步。用委托来执行

邢少 | 园豆:10926 (专家六级) | 2009-05-18 11:00
0

为什么不这么写呢?

public bool OpenItem()
{

return true;
}

当调用OpenItem()后,再执行
System.Threading.Thread.Sleep(30 * 1000);
可不可以?
比如:
if(OpenItem())
{
System.Threading.Thread.Sleep(
30 * 1000);
}
或者
Code

再或者
if(OpenItem())
{
//返回真时要处理的问题
}
else
{
//返回false时要处理的问题
}

System.Threading.Thread.Sleep(
30 * 1000);


清凉一夏 | 园豆:210 (菜鸟二级) | 2009-06-01 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册