关闭和任务 [英] Closures and Tasks

查看:110
本文介绍了关闭和任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有它们之间的任何功能上的差异,以函数调用。

方法一:

 公共静态无效PrintMe(obj对象)
{
    任务task =新任务(()=>
    {
        Console.WriteLine(obj.ToString());
    });
    task.Start();
}
 

方法二:

 公共静态无效PrintMe(obj对象)
{
    任务task =新建任务((对象ARG)=>
    {
        Console.WriteLine(arg.ToString());
    },OBJ);
    task.Start();
}
 

解决方案

第一个通过了变量OBJ 的任务。第二个通过了值的OBJ

要看到差距分配别的创建任务后,到obj。

 公共静态无效PrintMe(obj对象)
{
    任务task =新任务(()=>
    {
        Console.WriteLine(obj.ToString());
    });
    OBJ =惊喜;
    task.Start();
}
 

Is there any functional difference between these to function calls.

Method1:

public static void PrintMe(object obj)
{
    Task task = new Task(() =>
    {
        Console.WriteLine(obj.ToString());
    });
    task.Start();
}

Method2:

public static void PrintMe(object obj)
{
    Task task = new Task((object arg) =>
    {
        Console.WriteLine(arg.ToString());
    }, obj);
    task.Start();
}

解决方案

The first one passes the variable obj to the task. The second one passes the value of obj.

To see the difference assign something else to obj after creating the task.

public static void PrintMe(object obj)
{
    Task task = new Task(() =>
    {
        Console.WriteLine(obj.ToString());
    });
    obj = "Surprise";        
    task.Start();
}

这篇关于关闭和任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆