首页 新闻 搜索 专区 学院

这个方法是做什么的?什么意思,什么功能哦?

0
[已解决问题] 解决于 2014-09-12 15:24

System.Threading.Tasks.Task.Factory.StartNew(new Action(() =>
{
this.Invoke(new MethodInvoker(() =>
{
string path = FileOperate.GetUserRegData();
if (!string.IsNullOrEmpty(path))
{
txtInstalPath.Text = System.IO.Path.GetDirectoryName(path);
RefreshData();
}
}));
}));

问题补充:

 重点介绍下Task 和那个匿名委托什么的。

Eysa的主页 Eysa | 初学一级 | 园豆:70
提问于:2014-08-08 11:57
< >
分享
最佳答案
0

System.Threading.Tasks.Task.Factory.StartNew(new Action(() => //用匿名函数启动一个新任务
{
this.Invoke(new MethodInvoker(() => //使用Invoke防止UI进程冻结并在新进程中更新UI
{//以下为任务内容。
string path = FileOperate.GetUserRegData();
if (!string.IsNullOrEmpty(path))
{
txtInstalPath.Text = System.IO.Path.GetDirectoryName(path);
RefreshData();
}
}));
}));

奖励园豆:5
XiaoFaye | 老鸟四级 |园豆:3082 | 2014-08-08 12:04
其他回答(3)
0

对于初学者来说,

1、System.Threading.Tasks.Task.Factory.StartNew(new Action(() =>
{
this.Invoke(new MethodInvoker(() =>
{

这几句不用管他。

2、string path = FileOperate.GetUserRegData();
if (!string.IsNullOrEmpty(path))

从某个自定义静态函数中获取路径字符串,比较象是从注册表一类中获取,如果字符串不为空,则...

3、txtInstalPath.Text = System.IO.Path.GetDirectoryName(path);
RefreshData();

获取文件夹名称,并显示在文本框中,

刷新数据。(自定义函数,请在项目中或是引用类库中查找,右键显示定义)

爱编程的大叔 | 园豆:30655 (高人七级) | 2014-08-08 12:07
0

1、从用户注册的数据中获取到文件安装的路径,

2、然后把路径放到名为txtInstalPath的文本框中

3、刷新数据

乐享程序员 | 园豆:930 (小虾三级) | 2014-08-08 12:41

先说一下,我做java的,不会C#,.net,只是了解一点点C#基础。

根据上面的代码,我可以大胆的做如下猜测:

 

System.Threading.Tasks.Task.Factory,这个类应该是一个静态工厂类,用于创建Task的。例如上面代码中的startNew(),就创建并启动一个新的task。

 

Task,任务,应该就是使用了线程来实现的。

那么上面的代码其实就是:创建了一个线程,并启动线程,来做一些事情。

new Action();应当是Task要使用匿名委托吧。

委托,其实就是回调函数。

 

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-08-09 10:17
0

Task.Factory.StartNew是.net 4.0中引入的TPL,具体可以看滴答的雨的异步编程系列

jello chen | 园豆:7096 (大侠五级) | 2014-08-10 13:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册