读书人

请大家帮小弟我看看小弟我委托的对象总

发布时间: 2013-02-25 10:23:36 作者: rapoo

请大家帮我看看我委托的对象总是null 实在是找不到原因了
实在是找不出问题来了
写的这个功能是类内操作listview 显示日志的

相同的代码 我新建一个项目 随便写点操作 都没问题 可以正确运行
但是代码到这个项目里就一直报错

“未将对象引用设置到对象的实例”
我debug进去 对象updatelistview就是null
真心无力了
请大家帮这看看


//操作类内
namespace SocketDebugTool
{
public delegate void UpdateListview(string str);

class ClientTcp
{
public event UpdateListview updatelistview;

………………………………
/// <summary>
/// 开始
/// </summary>
public void start()
{
worker = new BackgroundWorker();

// 设置可以取消
worker.WorkerSupportsCancellation = true;
// 设置可以通告进度
//worker.WorkerReportsProgress = true;
//处理过程
worker.DoWork += new DoWorkEventHandler(doWork);
//更新控件
//worker.ProgressChanged += new ProgressChangedEventHandler(UpdateProgress);
//当后台操作已完成、被取消或引发异常时发生
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompletedWork);
//go
worker.RunWorkerAsync();
}
private void doWork(object sender, DoWorkEventArgs e)
{
…………
for (int i = count; i > 0 && run; --i)
{
………………
if (……)
{
……
//打日志
string str = System.Text.Encoding.Default.GetString(recvBuf);


loginfo.WriteLine("……:"+str);
//
updatelistview(str);//执行委托实例
}
else
{
……
}
……
}
catch (Exception ee)
{
……
}

}
……

//自动发送
……
}
}




//窗体类

namespace SocketDebugTool
{
public partial class ClientForm : Form
{
public ClientForm()
{
InitializeComponent();
}

#region //变量
ClientTcp clienttcp = new ClientTcp();

#region//更新listview控件
public void updatalistview(string msg)
{
PacketView.Items.Add(msg);
}
#endregion


//开始
private void btnSend_Click(object sender, EventArgs e)
{
////////////
clienttcp.updatelistview += new UpdateListview(updatalistview);
////////////////




if (!clienttcp.Running)
{
//TCP
if (rbTcp.Checked)
{
//构造 —_—
clienttcp = new ClientTcp();
//go
clienttcp.start();

………………
}
}
}


[解决办法]
你后面又给new了一个clienttcp,前面的赋值就没有了。
[解决办法]
哪里异常,也不说是哪一行。

读书人网 >C#

热点推荐