繁体   English   中英

C#多线程发出3个不同的线程

[英]c# multithreading sending out 3 different threads

我最近对此有一个疑问,但是现在遇到一个错误,即“无法为隐式类型的局部变量分配空值”。 下划线的部分是var Results的声明。

我要做的就是同时发送这3种不同的方法,因为它们都是数据工作,需要一些时间。 我认为异步发送它们,然后等待3个部分的返回效果最佳。 每个方法都返回一个数据表,而我只是试图访问返回的数据。

谁能指出我正确的方向?

 async void Main(string[] args)
    {
        // need instance, virtual methods, may add overrides. 
        SchoolData CSD = new SchoolData();
        FData FD = new FData();
        GiftData GD = new GiftData();


        List<Task> tasks = new List<Task>();
        tasks.Add(Task.Run(() => CSD.getSchool()));
        tasks.Add(Task.Run(() => FD.getF()));
        tasks.Add(Task.Run(() => GD.getGift()));

        var Results = await Task.WhenAll(tasks);
}

您将需要一个List<Task<DataTable>>因为您的任务都计算DataTables 因为您正在存储(非通用) Task对象,这意味着它们不代表任何结果。

您还需要将代码移到Main之外的其他方法中,因为它无法标记为async

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM