Я иду из Delphi в C #, я новичок в C #, у меня есть этот код, который хорошо работает:
// Форма1
public void Scan(string fOut)
{
Form2 frm2;
void SortOutputHandler(object sender, DataReceivedEventArgs e)
{
Trace.WriteLine(e.Data);
this.BeginInvoke(new MethodInvoker(() =>
{
frm2.addItem(e.Data ?? string.Empty);
}));
}
using (Process p = new Process())
{
frm2 = new Form2();
frm2.Show(this);
p.StartInfo.RedirectStandardError = true;
// necessary code
p.OutputDataReceived += new DataReceivedEventHandler(SortOutputHandler);
p.Start();
p.BeginOutputReadLine();
while (!p.HasExited)
{
Application.DoEvents();
}
p.Close();
frm2.Close();
frm2.Dispose();
}
}
// Форма 2
public void addItem(string line)
{
listBox1.Items.Add(line);
}
private void Form2_Shown(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
Я хочу переместить код в dll, но не могу найти ссылку Form1, которая вызывает dllname.Scan ("fn.xxx"):
this.BeginInvoke..
Заранее спасибо