帮忙看下这段代码。那里出错了 委托的不起作用
下面委托帮忙看下那里出了错,发现运行完成后。委托调用的函数UpDateDgv1 没有执行。窗体上面的list控件也并未修改成功using System;--------------------编程问答-------------------- 哪儿有窗体?TextFor吗?
using System.Text;
using System.Threading;
using LitJson;
namespace AutoFor
{
class Config
{
public delegate void UpDateDgvDelegate(string msg1, int rowId1, string columnName1);
public static UpDateDgvDelegate _upDateStateDelegate1;
public static Random rd = new Random();
public Config()
{
_upDateStateDelegate1 = new UpDateDgvDelegate(UpDateDgv1);
}
public void Run()
{
int count1 = 1;
int number1 =1;
for (int i = 0; i < count1; i++)
{
Thread pingTask1 = new Thread(new ThreadStart(delegate { get_info(i, number1); }));
pingTask1.Start();
}
}
public void get_info(int dgvrowid, int number)
{
DateTime st = DateTime.Now;
HttpHelps hh = new HttpHelps();
for (int i = 0; i < number; i++)
{
try
{
int ii = i + 1;
string POST_data = "520";
string URL = "http://cgi.meigui.qq.com/cgi-bin/rosary0904_gain?gprand=" + rd.NextDouble();
string HTML = hh.GetHttpRequestStringByNUll_Post(URL, POST_data, Encoding.Default);
DateTime et = DateTime.Now;
TextFor p = new TextFor();
//问题出现在这里。程序执行完成发行没有调用这里委托的数据去更新窗体空间的值
this.BeginInvoke(_upDateStateDelegate1, HTML.ToString(), dgvrowid, ExecDateDiff(st, et));
}
catch { }
}
}
public void UpDateDgv1(string msg, int rowId, string columnName)
{
try
{
TextFor F = new TextFor();
msg = "线程:" + rowId + "结果:" + msg;
F.listBox1.Items.Add(msg);
}
catch { }
}
public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
{
TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
return ts3.TotalMilliseconds.ToString();
}
}
}
线程里new出的窗体?
this.BeginInvoke?
this是Config的实例,那么这个BeginInvoke定义又在哪? --------------------编程问答-------------------- TextFor 是主窗体
BeginInvoke 确实没有定义,能指教下吗、。
BeginInvoke在类里面如何使用或者定义
补充:.NET技术 , C#