2014-11-21 77 views
0

我想在我的wpf应用程序中实现多线程。我有一个表的列表,我需要为每个表同时生成数据文件。如何在wpf中实现多线程

假设我有同时使用线程)称为GenerateFiles功能,

public void GenerateFiles() 
    { 
     //creating scripts 
    } 

,我有

foreach(var table in tables) 
     { 
    GenerateFiles(); 
     } 

使用GenerateFiles如何genrate文件(? 这是正确的吗?

while(tables.count) 
{ 
     Thread th = new Thread(); 
     oThread.Start(new ThreadStart(GenerateFiles)); 
} 

我该如何使用多线程来实现?

+0

您可能想重新考虑这一点。并行I/O并不总是一个好主意。在SSD上它可能会快一点,在HDD上它会慢很多。 – 2014-11-21 12:13:23

回答

2

使用您的代码将文件的生成移动到后台线程。如果你想创建它们相互平行,你可以使用:

Parallel.ForEach(tables, table => 
{ 
    GenerateFiles(); 
} 
1

如果你想在后台生成文件,并不会影响到UI,你可能想换这个任务里面。

Task.Run(()=> 
    { 
     Parallel.ForEach(tables, table => 
     { 
      GenerateFiles(); 
     } 
    });