作者tramp (无法控制的思绪)
看板C_Sharp
标题Re: [问题] 遇到"无法存取已处置的物件"
时间Sat Jan 2 23:49:02 2010
我现在有另外一个问题出现了~"~
重开机以後莫名奇妙就不能debug了orz(所有的.net专案都挂了...)
出现了一个错误视窗上面写着
尝试执行专案时发生错误,无法开始侦错。 连结控制码不正确
google查了说要把
系统管理工具→服务→Terminal Services 启动
但是我点了启动以後
就卡住了
最後就是没有回应挂点...
有没有版上大大可以帮我解决这个问题~"~
※ 引述《tramp (无法控制的思绪)》之铭言:
: 为了让label随着计算不断地更新
: 所以我设定了
: delegate void SetLabelAsCallBack(string text);
: 在thread跑的时候
: 会呼叫下面这个function来更新label
: private void renderLableTimes(string timesNow)
: {
: if (this.labelEpochNow.InvokeRequired)
: {
: SetLabelAsCallBack labelBack = new
: SetLabelAsCallBack(renderLableEpochs);
: this.Invoke(labelBack,
: new object[] { timesNow });
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 问题出在这一行
: 显示的例外是 ObjectDisposedException
: 无法存取以处置的物件
: }
: else
: {
: this.labelEpochNow.Text = "Times" + timesNow;
: }
: }
: 我的程式是这样的
: 启动程式之後
: label会不断地更新该label的数值
: 然後我有另外一个地方(B地方)会使用到该label的值(就是上面的 timesNow)
: 我设定了一个checkBox来决定B地方是否执行(其实就是画图)
: 假如程式一开始的地方B处就是执行的
: 就很顺利的一直跑
: 当程式正在跑的时候
: 我想让B停止画图 程式继续跑 只剩下label继续更新数值
: 这个时候就会当掉出现上面的错误例外
: 我查了网路
: 用try catch将this.Invoke(....)这行包起来之後
: 有出现其他的错误例外
: 最後是跑到
: Application.Run(new MyGame());
: 显示IndexOutOfRangeException例外
: 或者是
: NullReferenceException例外
: 但我不知道该怎麽去处理这样的问题
: 是因为thread在跑的关系 导致原本我的程式MyGame变成了null
: 以至於读取不到timesNow的数值吗@@?
: 烦请板上大大可以帮我解决这个难题~"~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.44.27
※ 编辑: tramp 来自: 140.112.44.27 (01/02 23:49)