public void Data(object pDataSet, string Table)
{
MessageBox.Show("Name: "+Thread.CurrentThread.Name);
DataSet = (ApiLib.DataSet)pDataSet;
if (Table == "SEC")
{
for(int i = 0; i < DataSet.Count ; ++i)
{
--здесь идет закидывание в SQL принятых данных.--
count = count +1;
textBox1.Text = count.ToString();
}
}
}
При загрузке формы MessageBox выдает "WinForm`s thread", при срабатывании Data MessageBox выдает "" , то есть налицо работа с длл в потоке, отличным от главного.
В VS 2005:
[STAThread]
static void Main()
{
Thread.CurrentThread.Name = "WinForm`s thread";
MessageBox.Show(Thread.CurrentThread.Name);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public void Data(object pDataSet, string Table)
{
MessageBox.Show("Name: "+Thread.CurrentThread.Name);
DataSet = (ApiLib.DataSet)pDataSet;
if (Table == "SEC")
{
for(int i = 0; i < DataSet.Count ; ++i)
{
--здесь идет закидывание в SQL принятых данных.--
count = count +1;
textBox1.Text = count.ToString();
}
}
}
При загрузке формы MessageBox выдает "WinForm`s thread", при срабатывании Data MessageBox выдает "WinForm`s thread".
Пробовал менять с STA на MTA — есс-но, длл не заработала (события не срабатывали и не шли данные)
Вопрос: как сделать, чтобы события длл обрабатывались не в главном потоке?