2014-11-21 90 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(); 
     } 
    });