Приветствую Всех! Есть проект (можно сказать большой по количеству строк), поэтому нет возможности выложить его в тему. Поэтому накидал мини проект, где попытался изложить суть проблемы. Второй день колбашусь, не могу понять из-за чего так происходит и как это лечить. И так к делу. Вот код: Код | using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms;
namespace BackgroundWorkerTest { public partial class BackgroundWorkerTest : Form { #region Private members [DllImport("kernel32", CharSet = CharSet.Auto)] private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath); #endregion
static int interval = 2000; static bool btimer1 = false; static bool btimer2 = false; static bool btimer3 = false; static bool btimer4 = false;
Data data = null;
public BackgroundWorkerTest() { InitializeComponent(); }
private void BackgroundWorkerTest_Load(object sender, EventArgs e) { timer1.Interval = interval; timer2.Interval = interval; timer3.Interval = interval; timer4.Interval = interval; }
private void start_Click(object sender, EventArgs e) { start.Enabled = false;
timer1.Enabled = true; timer2.Enabled = true; timer3.Enabled = true; timer4.Enabled = true;
exit.Enabled = true; }
private void exit_Click(object sender, EventArgs e) { Application.Exit(); }
private void timer1_Tick(object sender, EventArgs e) { if ((btimer1 == false) && (!bgw1.IsBusy)) { timer1.Enabled = false; btimer1 = true; bgw1.RunWorkerAsync(1); btimer1 = false; } }
private void timer2_Tick(object sender, EventArgs e) { if ((btimer2 == false) && (!bgw2.IsBusy)) { timer2.Enabled = false; btimer2 = true; bgw2.RunWorkerAsync(2); btimer2 = false; } }
private void timer3_Tick(object sender, EventArgs e) { if ((btimer3 == false) && (!bgw3.IsBusy)) { timer3.Enabled = false; btimer3 = true; bgw3.RunWorkerAsync(3); btimer3 = false; } }
private void timer4_Tick(object sender, EventArgs e) { if ((btimer4 == false) && (!bgw4.IsBusy)) { timer4.Enabled = false; btimer4 = true; bgw4.RunWorkerAsync(4); btimer4 = false; } }
private void bgw1_DoWork(object sender, DoWorkEventArgs e) { int number = (int)e.Argument; BackgroundWorker bgw = sender as BackgroundWorker; ProcessData(number); bgw.CancelAsync(); }
private void bgw2_DoWork(object sender, DoWorkEventArgs e) { int number = (int)e.Argument; BackgroundWorker bgw = sender as BackgroundWorker; ProcessData(number); bgw.CancelAsync(); }
private void bgw3_DoWork(object sender, DoWorkEventArgs e) { int number = (int)e.Argument; BackgroundWorker bgw = sender as BackgroundWorker; ProcessData(number); bgw.CancelAsync(); }
private void bgw4_DoWork(object sender, DoWorkEventArgs e) { int number = (int)e.Argument; BackgroundWorker bgw = sender as BackgroundWorker; ProcessData(number); bgw.CancelAsync(); }
private void ProcessData(int number) { File.Delete(Application.StartupPath + @"\result" + number.ToString() + ".ini"); for (int i = 1; i <= 100; i++) { data = GetData(number); WritePrivateProfileString("result", i.ToString(), data.name, Application.StartupPath + @"\result" + number.ToString() + ".ini"); } }
private Data GetData(int number) { StringBuilder temp = new StringBuilder(10240); Data data = new Data();
data.name = "data" + number.ToString();
//GetPrivateProfileString("data", "name", "null", data.name, 10240, Application.StartupPath + @"\data" + number.ToString() + ".ini");
return data; }
}
class Data { public string name = null; } }
|
На выходе должно получиться четыре файла: - result1.ini
- result2.ini
- result3.ini
- result4.ini
С содержимым (к примеру) для result1.ini: Цитата | [result] 1=data1 2=data1 3=data1 4=data1 ..... 97=data1 98=data1 99=data1 100=data1 |
для result2.ini: Цитата | [result] 1=data2 2=data2 3=data2 4=data2 ..... 97=data2 98=data2 99=data2 100=data2 |
для result3.ini: Цитата | [result] 1=data3 2=data3 3=data3 4=data3 ..... 97=data3 98=data3 99=data3 100=data3 |
для result4.ini: Цитата | [result] 1=data4 2=data4 3=data4 4=data4 ..... 97=data4 98=data4 99=data4 100=data4 |
Но на самом деле результат другой и каждый раз разный (выкладываю как есть): result1.ini: Цитата | [result] 1=data1 2=data1 3=data1 4=data1 5=data1 6=data1 7=data1 8=data1 9=data1 10=data1 11=data1 12=data1 13=data1 14=data1 15=data1 16=data1 17=data1 18=data1 19=data1 20=data1 21=data1 22=data1 23=data1 24=data1 25=data1 26=data1 27=data1 28=data1 29=data1 30=data1 31=data1 32=data1 33=data1 34=data1 35=data1 36=data1 37=data1 38=data1 39=data1 40=data1 41=data1 42=data1 43=data1 44=data1 45=data1 46=data1 47=data1 48=data1 49=data1 50=data1 51=data1 52=data1 53=data1 54=data1 55=data1 56=data1 57=data1 58=data1 59=data1 60=data1 61=data1 62=data1 63=data1 64=data1 65=data1 66=data1 67=data1 68=data1 69=data1 70=data1 71=data1 72=data1 73=data1 74=data1 75=data1 76=data1 77=data1 78=data1 79=data1 80=data1 81=data1 82=data1 83=data1 84=data1 85=data1 86=data1 87=data1 88=data1 89=data1 90=data1 91=data1 92=data1 93=data1 94=data1 95=data1 96=data1 97=data1 98=data1 99=data1 100=data1 |
result2.ini: Цитата | [result] 1=data2 2=data2 3=data2 4=data2 5=data2 6=data2 7=data2 8=data2 9=data2 10=data2 11=data2 12=data2 13=data2 14=data2 15=data2 16=data2 17=data2 18=data2 19=data2 20=data2 21=data2 22=data2 23=data2 24=data2 25=data2 26=data2 27=data2 28=data2 29=data2 30=data2 31=data2 32=data4 33=data2 34=data2 35=data2 36=data2 37=data2 38=data2 39=data2 40=data2 41=data2 42=data2 43=data2 44=data2 45=data2 46=data2 47=data2 48=data2 49=data2 50=data2 51=data2 52=data2 53=data2 54=data2 55=data2 56=data2 57=data2 58=data2 59=data2 60=data2 61=data2 62=data2 63=data2 64=data2 65=data2 66=data2 67=data2 68=data2 69=data2 70=data2 71=data2 72=data2 73=data2 74=data2 75=data2 76=data2 77=data2 78=data2 79=data2 80=data2 81=data2 82=data2 83=data2 84=data2 85=data2 86=data2 87=data2 88=data2 89=data2 90=data2 91=data2 92=data2 93=data2 94=data2 95=data2 96=data2 97=data2 98=data2 99=data2 100=data2 |
result3.ini: Цитата | [result] 1=data3 2=data3 3=data3 4=data3 5=data3 6=data3 7=data3 8=data3 9=data3 10=data3 11=data3 12=data3 13=data3 14=data3 15=data3 16=data3 17=data3 18=data3 19=data3 20=data3 21=data3 22=data3 23=data3 24=data3 25=data3 26=data3 27=data3 28=data3 29=data3 30=data3 31=data3 32=data3 33=data3 34=data3 35=data3 36=data3 37=data3 38=data3 39=data3 40=data3 41=data3 42=data3 43=data3 44=data3 45=data3 46=data3 47=data3 48=data3 49=data3 50=data3 51=data3 52=data3 53=data3 54=data3 55=data3 56=data3 57=data3 58=data3 59=data3 60=data3 61=data3 62=data3 63=data3 64=data3 65=data3 66=data3 67=data3 68=data3 69=data3 70=data3 71=data3 72=data3 73=data3 74=data3 75=data3 76=data3 77=data3 78=data3 79=data3 80=data3 81=data3 82=data3 83=data3 84=data3 85=data3 86=data3 87=data3 88=data3 89=data3 90=data3 91=data3 92=data3 93=data3 94=data3 95=data3 96=data3 97=data3 98=data3 99=data3 100=data3 |
result4.ini: Цитата | [result] 1=data4 2=data4 3=data4 4=data4 5=data4 6=data4 7=data4 8=data4 9=data4 10=data4 11=data4 12=data4 13=data4 14=data4 15=data4 16=data4 17=data4 18=data4 19=data4 20=data4 21=data1 22=data4 23=data4 24=data4 25=data4 26=data4 27=data4 28=data4 29=data4 30=data4 31=data4 32=data4 33=data4 34=data4 35=data4 36=data4 37=data4 38=data4 39=data4 40=data4 41=data4 42=data4 43=data4 44=data4 45=data4 46=data4 47=data4 48=data4 49=data4 50=data4 51=data4 52=data4 53=data4 54=data4 55=data4 56=data4 57=data4 58=data4 59=data4 60=data4 61=data4 62=data4 63=data4 64=data4 65=data4 66=data4 67=data4 68=data4 69=data4 70=data4 71=data4 72=data4 73=data4 74=data4 75=data4 76=data4 77=data4 78=data4 79=data4 80=data4 81=data4 82=data1 83=data4 84=data4 85=data4 86=data4 87=data4 88=data4 89=data4 90=data4 91=data4 92=data4 93=data4 94=data4 95=data4 96=data4 97=data4 98=data4 99=data4 100=data4 |
Что делаю не так? Спасибо. P.S. В аттаче сам проект. Это сообщение отредактировал(а) IEZ - 8.2.2012, 00:29
Присоединённый файл ( Кол-во скачиваний: 1 )
BackgroundWorkerTest.zip 42,82 Kb
--------------------
"Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух.
|