c# 关于invoke的无法访问已释放的对象怎么办? [问题点数:50分,结帖人ytyur6r]

Bbs1
本版专家分:0
结帖率 50%
Bbs5
本版专家分:4237
Bbs4
本版专家分:1251
Bbs1
本版专家分:0
Bbs1
本版专家分:0
关于 无法访问释放对象
一个FORM,FORM中一个按钮,一个TEXTBOX:rnbutton 事件rnrn Private Sub btnOutput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rnrnbtnLogin.Clickrn Dim myThreadStart As Threading.ThreadStart = New Threading.ThreadStart(AddressOf _OutPutMessage)rn Dim myThread As Threading.Thread = New Threading.Thread(myThreadStart)rn myThread.Start()rnrn End Subrnrn执行后:rnrn不断向Textbox输出信息。rnrn执行过程中,强行关闭form,会出现以上的错误,有什么办法能避免吗?rnrn目前我只能用Try 。。 Catch 。。end try 时间来处理rnrn[code=C#]rnSystem.ObjectDisposedException: <em>无法访问</em>已<em>释放</em>的<em>对象</em>。rn<em>对象</em>名:“TextBox”。rn 在 System.Windows.Forms.Control.CreateHandle()rn 在 System.Windows.Forms.TextBoxBase.CreateHandle()rn 在 System.Windows.Forms.TextBoxBase.SetSelectedTextInternal(String text, Boolean clearUndo)rn 在 System.Windows.Forms.TextBoxBase.set_SelectedText(String value)rn 在 System.Windows.Forms.TextBoxBase.AppendText(String text)rn 在 HtmlAnalysis.MainForm.OutPutMessage(String _x, String _y, String _qty, String _soldier) 位置 D:\程rnrn序代码\HtmlAnalysis\HtmlAnalysis\MainForm.vb:行号 115rn 在 HtmlAnalysis.MainForm.OutPutMessage() 位置 D:\程序代码\HtmlAnalysis\HtmlAnalysis\MainForm.vb:行号 rnrn149rn[/code]rnrnrn
无法访问释放对象!!!!!
以下是form1的代码:rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnrnnamespace _20080517S2rnrn public partial class MainForm : Formrn rn From2 fa;rn public MainForm()rn rn InitializeComponent();rn fa = new From2();rn fa.MdiParent = this;rn fa.WindowState = FormWindowState.Maximized;rn fa.button1.Click += new EventHandler(button1_Click);rn rn rn rn void button1_Click(object sender, EventArgs e)rn rn MessageBox.Show(fa.Timu);rn fa.Close();rn rn rn rn rn private void 增加题目ToolStripMenuItem_Click(object sender, EventArgs e)rn rn fa.Show();rn rn rnrnrnrn下面是form2的代码:rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnrnnamespace _20080517S2rnrn public partial class From2: Formrn rn public From2()rn rn InitializeComponent();rn rn public string Timurn rn get return this.textBox1.Text; rn rn public string XX1rn rn get return this.textBox2.Text; rn rn public string XX2 rn get return this.textBox3.Text; rn rn public string XX3 rn get return this.textBox4.Text; rn rn public string XX4 rn get return this.textBox5.Text; rn rnrn private void button1_Click(object sender, EventArgs e)rn rn MessageBox.Show(this.Timu);rn rn rn rnrnrnrn第一次点击”增加题目“时 form2 正常SHOW出来!rnrn输入完后 点FORM2的Button1关闭rnrn然后第二次点击“增加题目”的时候就会出现 “<em>无法访问</em>已<em>释放</em>的<em>对象</em>” 的错误rnrn为什么会这样 rnrn环境:VS2008
无法访问释放对象
我在一个子窗口form1_load里面加入下面代码rn Dim aaa As New System.Windows.Forms.MenuStriprn aaa = fMain.MenuStrip1rn Me.Controls.Add(aaa)rnrn第一次打开没有错误,但是当我关闭form1后,再打开时候提示 错误: <em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名“MenuStrip”rn这是怎么回事呢rnrn
无法访问释放对象
在Form1中定义了Form2 form2=null;rnrn第一步:rn点击button1rnif (form2==null)rn form2=new Form2();rnform2.TopLevel = false;rnthis.panel.Controls.Add(form2);rnrn第二步:rn点击button2rnthis.panel.Controls.Remove(form2);rnform2.Close();rnrn第三步:rn再次点击button1rn在this.panel.Controls.Add(form2);这句上抛出异常rn“<em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名:“form2””rnrn不知道什么原因,望高手解答!rnrn分不够,追加!
C# Richtextbox 无法访问释放对象
现在我有一个主窗口FrmMain,一个子窗口FrmSub,子窗口里面有个RichTextBox,在主窗口FrmMain 里面我有个方法,就是弹出FrmSub,代码是这样的rnFrmSub _frmSub=new FrmSub();rn_frmSub.Show();rn现在问题就出现了,当我第一打开FrmSub时,往RichTextBox里面AppendText("aaaa"),很正常,可是当我关闭FrmSub,再打开FrmSub时,往RichTextBox里面AppendText("aaaa")就报错了“<em>无法访问</em>已<em>释放</em>的<em>对象</em>”。。rn我很有郁闷,我每次都是New一个FrmSub,按道理说里面的控件都是重新创建的啊, 怎么还报这个错啊?不知道有哪位遇到这样的问题啊?该怎么解决啊?rn
System.ObjectDisposedException: 无法访问释放对象
我用C#仿照别人的写一个控件,其中用到了WebBrowser, 编译后放到HTML中,结果确出现以下错误rn有关调用实时(JIT)调试而不是此对话框的详细信息,rn请参见此消息的结尾。rnrn************** 异常文本 **************rnSystem.ObjectDisposedException: <em>无法访问</em>已<em>释放</em>的<em>对象</em>。rn<em>对象</em>名:“WebBrowser”。rn 在 System.Windows.Forms.WebBrowser.get_AxIWebBrowser2()rn 在 System.Windows.Forms.WebBrowser.PerformNavigate2(Object& URL, Object& flags, Object& targetFrameName, Object& postData, Object& headers)rn 在 System.Windows.Forms.WebBrowser.PerformNavigateHelper(String urlString, Boolean newWindow, String targetFrameName, Byte[] postData, String headers)rn 在 System.Windows.Forms.WebBrowser.Navigate(String urlString)rn 在 CSharpActiveX.Hello.btnGo_Click(Object sender, EventArgs e) 位置 D:\VC++\CSharpActiveX\CSharpActiveX\Hello.cs:行号 110rn 在 System.Windows.Forms.Control.OnClick(EventArgs e)rn 在 System.Windows.Forms.Button.OnClick(EventArgs e)rn 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)rn 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)rn 在 System.Windows.Forms.Control.WndProc(Message& m)rn 在 System.Windows.Forms.ButtonBase.WndProc(Message& m)rn 在 System.Windows.Forms.Button.WndProc(Message& m)rn 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)rn 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)rn 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)rnrnrnrn************** JIT 调试 **************rn要启用实时(JIT)调试,rn该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置rnjitDebugging 值。rn编译应用程序时还必须启用rn调试。rnrn例如: rnrnrn rnrnrn启用 JIT 调试后,任何无法处理的异常rn都将被发送到在此计算机上注册的 JIT 调试器,rn而不是由此对话框处理。rnrnHTML文件代码是rnrnrn rn ActiveX测试rnrnrnrnrnrnrnrnC#的原代码:rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Drawing;rnusing System.Data;rnusing System.Text;rnusing System.Windows.Forms;rnusing System.Runtime.CompilerServices;rnusing System.Runtime.InteropServices;rnusing System.Security; rnrnnamespace CSharpActiveXrnrn [Guid("4A44CF4E-F859-4328-AA22-3E9D7AFFF1AB")]rn public partial class Hello : UserControl, IObjectSafetyrn rn public Hello()rn rn InitializeComponent();rn rnrn #region IObjectSafety 成员rn private const string _IID_IDispatch = "00020400-0000-0000-C000-000000000046";rn private const string _IID_IDispatchEx = "a6ef9860-c720-11d0-9337-00a0c90dcaa9";rn private const string _IID_IPersistStorage = "0000010A-0000-0000-C000-000000000046";rn private const string _IID_IPersistStream = "00000109-0000-0000-C000-000000000046";rn private const string _IID_IPersistPropertyBag = "37D84F60-42CB-11CE-8135-00AA004BB851";rn private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER = 0x00000001;rn private const int INTERFACESAFE_FOR_UNTRUSTED_DATA = 0x00000002;rn private const int S_OK = 0;rn private const int E_FAIL = unchecked((int)0x80004005);rn private const int E_NOINTERFACE = unchecked((int)0x80004002);rn private bool _fSafeForScripting = true;rn private bool _fSafeForInitializing = true;rn public int GetInterfaceSafetyOptions(ref Guid riid, ref int pdwSupportedOptions, ref int pdwEnabledOptions)rn rn int Rslt = E_FAIL;rn string strGUID = riid.ToString("B");rn pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA;rn switch (strGUID)rn rn case _IID_IDispatch:rn case _IID_IDispatchEx:rn Rslt = S_OK;rn pdwEnabledOptions = 0;rn if (_fSafeForScripting == true)rn pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;rn break;rn case _IID_IPersistStorage:rn case _IID_IPersistStream:rn case _IID_IPersistPropertyBag:rn Rslt = S_OK;rn pdwEnabledOptions = 0;rn if (_fSafeForInitializing == true)rn pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA;rn break;rn default:rn Rslt = E_NOINTERFACE;rn break;rn rn return Rslt;rn rn public int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionSetMask, int dwEnabledOptions)rn rn int Rslt = E_FAIL;rn string strGUID = riid.ToString("B");rn switch (strGUID)rn rn case _IID_IDispatch:rn case _IID_IDispatchEx:rn if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_CALLER) && (_fSafeForScripting == true))rn Rslt = S_OK;rn break;rn case _IID_IPersistStorage:rn case _IID_IPersistStream:rn case _IID_IPersistPropertyBag:rn if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_DATA) && (_fSafeForInitializing == true))rn Rslt = S_OK;rn break;rn default:rn Rslt = E_NOINTERFACE;rn break;rn rn return Rslt;rn rn #endregionrnrn private void button1_Click(object sender, EventArgs e)rn rn SetTime(DateTime.Now.ToLongTimeString());rn rnrn public void SetTime(string timeStr)rn rn this.label2.Text = timeStr;rn rnrn public void SayHello()rn rn SetTime("出错了");rn rnrn private void button2_Click(object sender, EventArgs e)rn rn this.label2.BackColor = Color.Red;rn rnrn private void btnGo_Click(object sender, EventArgs e)rn rn this.Browser.Navigate(txtAddr.Text);rn rnrn private void btnPreview_Click(object sender, EventArgs e)rn rn IOleCommandTarget pCmdTarg = Browser.ActiveXInstance as IOleCommandTarget;rn Guid CGID_MSHTML = GlobalConst.CGID_MSHTML;rnrn string vTemplatePath = txtTemplateAddr.Text;rn Object[] o = new object[1] vTemplatePath ;rnrn pCmdTarg.Exec(ref CGID_MSHTML,rn GlobalConst.IDM_PRINTPREVIEW,rn (uint)OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER,rn o,rn null);rn rnrn private void btnPrint_Click(object sender, EventArgs e)rn rn IOleCommandTarget pCmdTarg = Browser.ActiveXInstance as IOleCommandTarget;rn Guid CGID_MSHTML = GlobalConst.CGID_MSHTML;rnrn string vTemplatePath = txtTemplateAddr.Text;rn Object[] o = new object[1] vTemplatePath ;rnrn pCmdTarg.Exec(ref CGID_MSHTML,rn GlobalConst.IDM_PRINT,rn (uint)OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER,rn o,rn null); rn rn rnrnrn接口IObjectSafety.cs:rnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnusing System.Runtime.InteropServices; rnrnnamespace CSharpActiveXrnrn [ComImport, GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]rn [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] rn public interface IObjectSafetyrn rn [PreserveSig]rn int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions); rn [PreserveSig()] rn int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions); rn rnrnrn接口IOleCommandTarget.cs:rnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnusing System.Runtime.InteropServices;rnusing System.Runtime.InteropServices.ComTypes;rnrnnamespace CSharpActiveXrnrn [ComImport(), Guid("B722BCCB-4E68-101B-A2BC-00AA00404770"),rn InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]rnrn public interface IOleCommandTargetrn rn [PreserveSig()]rn int QueryStatus([In, MarshalAs(UnmanagedType.Struct)] ref Guidrn pguidCmdGroup, [MarshalAs(UnmanagedType.U4)] int cCmds,rn [In, Out] IntPtr prgCmds, [In, Out] IntPtr pCmdText);rn [PreserveSig()]rn int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdExecOpt,rn [In, MarshalAs(UnmanagedType.LPArray)] object[] pvaIn,rn [In, Out, MarshalAs(UnmanagedType.LPArray)] object[] pvaOut);rnrn rnrn public enum OLECMDEXECOPTrn rn OLECMDEXECOPT_DODEFAULT,rn OLECMDEXECOPT_PROMPTUSER,rn OLECMDEXECOPT_DONTPROMPTUSER,rn OLECMDEXECOPT_SHOWHELPrn rn public static class GlobalConstrn rn public const int MSOCMDEXECOPT_DONTPROMPTUSER = 2;rn public const int IDM_PRINT = 0x1b;rn public const int IDM_PRINTPREVIEW = 0x7d3;rn public static readonly Guid CGID_MSHTML = new Guid("DE4BA900-59CA-11CF-9592-444553540000");rn public static readonly Guid IID_OleCommandTarget = new Guid("B722BCCB-4E68-101B-A2BC-00AA00404770");rn rnrnrnrn生成后rn再部署安装Setup后rnrn打开HTML页,click me和button2均无问题,rn在Document address中输入:http://www.sohu.com 然后点击Go就出现上面的错误.rn也就是说程序在rn private void btnGo_Click(object sender, EventArgs e)rn rn this.Browser.Navigate(txtAddr.Text);rn rn出错,不知怎样解决.rnrn
C#socket通讯两个最经典错误解决方案
经典错误1 <em>无法访问</em>已<em>释放</em>的<em>对象</em>。 <em>对象</em>名:“System.Net.Sockets.Socket”;解决方案 经典错误2 "远程主机强迫关闭了一个现有的连接。"解决方案
C#无法访问释放的资源
Panel p = (Panel)DAL.Commen.arrPanels[i];rnthis.splitContainer1.Panel1.Controls.Add(p);rnrn这个窗体关闭后第二次打开就会报Panel已<em>释放</em>的错误。rnrn就是这句代码,出错了。那个DAL.Commen.arrPanels是我设置的一个公共静态ArrayList,存放的是好多Panel<em>对象</em>。我测试了,可以调用出它来,只写上面那一句不会报错。然后下面那句把括号里的换成 new Panel()也不会报错。rnrn怎么回事啊大神们= =
在winform中用到了WebBrowser控件,提示【无法访问释放对象】,怎么办
在winform中用到了WebBrowser控件,在vs2005测试正常,但把winform放到网站上,提示【<em>无法访问</em>已<em>释放</em>的<em>对象</em>】,<em>怎么办</em>?rnrn具体如下:rnSystem.ObjectDisposedException: <em>无法访问</em>已<em>释放</em>的<em>对象</em>。rn<em>对象</em>名:“WebBrowser”。
无法访问释放对象X.show()的问题???
我写了一个登录界面窗体A,在程序B中引用模块A的窗体。A,B窗体都在模块里面实例化。rnrn在B中,点击“登录”,然后A.show()。在A.show输入完数据后,A.hide,B.show在B中显示A输入的数据的结果。rnrn第一次运行,完全正常。rnrn第二次点击登录,在A录入数据的时候,就会出现返回空的数据结果,并且显示:rnrn<em>无法访问</em>已<em>释放</em>的<em>对象</em>B.show.rnrn求方法解决求分析求帮助
无法访问释放对象对象名:“System.Net.Sockets.Socket”。
<em>无法访问</em>已<em>释放</em>的<em>对象</em>。rn<em>对象</em>名:“System.Net.Sockets.Socket”。 在 System.Net.Sockets.Socket.get_Available()rnrn这是我的socket服务端发生的异常;rn我的服务端socket是异步接收客户端数据,上面这段异常是在客户端连接服务端之后,不给服务端发送任何数据包的情况下rn服务端检查到并关闭掉该客户端连接,试过先Shutdown(SocketShutdown.Both);然后再close();然而并没有用,rnrnrn检查是一个定时器,每分钟检查一次,查检是一个for所有的客户端检查连接数据包情况;满足关闭条件则关闭客户端<em>释放</em>资源rn,就是当我关闭客户端<em>释放</em>资源的时候,就发生错误哦就是close之后,readCallBack里面就发生这个异常了,我不知道要怎么做才能不让这个异常发生,希望知道的人能告诉我,在这里谢谢了rn以下是接收回调函数rn[code=csharp]rn public virtual void ReadCallback(IAsyncResult ar)rn rn tryrn rn string _content = string.Empty;rn SocketClientVO _state = (SocketClientVO)ar.AsyncState;rn Socket _handler = _state.m_socket;rn int _Available = _handler.Available;rn byte[] RecievedData = new byte[_Available];rn switch (_Available)rn rn case 0:rn Close(_state);rn rn Logger.wirte("接收到0包" + _state.Code+"正常退出");rn return;rn default:rn rn int curRcv = 0;rn int hasRecv=0;rn int left =_Available;rn //_handler.EndReceive(rn while (hasRecv < _Available)rn rn curRcv = _handler.Receive(RecievedData, hasRecv, left, SocketFlags.None);rn left -= curRcv;rn hasRecv += curRcv;rn rn break;rn rnrn rn tryrn rn byte[] temp = new byte[0];rn _handler.BeginReceive(temp, 0, 0, 0, new AsyncCallback(ReadCallback), _state);//继续读取下一个数据rn rn catchrn rn this.Close(_state);rn rnrn rn catch (Exception ex)rn rn Logger.wirte(ex);rn rn rn[/code]
无法访问释放对象对象名:"Icon"
开发环境:XP sp2;VS2008测试版;选用framework2.0(因为要在2000上部署) rn 现象:开发打包过程一切正常!rn部署环境:2000sp4;framework2.0;rn 现象:安装正常.当点关闭最大化的MDI子窗体时,出现"<em>无法访问</em>已<em>释放</em>的<em>对象</em>,<em>对象</em>名:"Icon""异常!其他操作都很正常.(在另一台XPsp2也安装过,也是这种情况)rnrn 这是为什么呢??请问高手,老手,新手.谢谢大家!rn
C#Winform打印预览无法访问释放对象
我想打印预览一张图片rn第一次单击能打开,关上预览后再单击预览就报错rn<em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名:“PrintPreviewDialog”。rn源码为:rnnamespace WindowsFormsApplication10rnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rnrn private void button1_Click(object sender, EventArgs e)rn rn printPreviewDialog1.Show();rn rnrn private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)rn rn e.Graphics.DrawImage(Image.FromFile("c:\\1233.jpg"), 100, 100);rn rn rnrn希望有高手能帮帮我,先谢谢了 rn
无法访问释放对象 对象名:Icon
myForm是我的一个窗体实类rnrn当我在另一个项目中引用这个dll,初始化 new myForm(Icon ico) 时候 myForm 为什么不能修改原来的图标?rnrn这时候会报错 <em>无法访问</em>已<em>释放</em>的<em>对象</em> <em>对象</em>名:Iconrnrn请问应该如何解决?谢谢
无法访问释放对象。client.Connect(ipEndPoint);报错
做一个小例子rn客户端向服务器发送连接 和断开连接。第一次一切正常。rn第二次的时候会出现问题不知道为什么。望高手指教rnrnrn代码如下rnnamespace sock监视开启和关闭rnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rn Socket client = new Socket(AddressFamily.InterNetwork,rnSocketType.Stream, ProtocolType.Tcp);rn private void button1_Click(object sender, EventArgs e)rn rn rn IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.108"), 8000);rnrnrn rn // Connect the socket to the remote end point.rn client.Connect(ipEndPoint);rnrn rnrn private void button2_Click(object sender, EventArgs e)rn rn if (client.Connected)rn rn client.Shutdown(SocketShutdown.Both);rnrnrn client.Close();rn rn rnrn private void button4_Click(object sender, EventArgs e)rn rn if (client.Connected)rn label1.Text="连接着那!!!!!!!!!";rn elsern label1.Text="不连接了HAPPY";rnrn rn rn
SAP如何修改已释放的请求
SAP如何修改已<em>释放</em>的请求.对于已经<em>释放</em>的请求,可以重置其状态,然后继续修改。具体从什么地方来的有点忘记了。
C# winform 项目,无法访问释放对象对象名:"WebBrowser"
在C# winform 项目中,在关闭窗体时导致WebBrowser报错,提示:<em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名:"WebBrowser"。rnrnrn请帮忙看看代码这么修改下,谢谢!rn代码如下:rn private void FrmAnalysis_Load(object sender, EventArgs e)rn rnrn timer = new System.Threading.Timer(MyTimerCallback, null, 0, 1000);rn rnrn void MyTimerCallback(object o)rn rn tryrn rn //防止在窗口句柄初始化之前就走到下面的代码rn if (this.IsHandleCreated == true)rn rn TheadPackage();rn rn rn catchrn rn rn rnrnrn void TheadPackage()rn rn System.Threading.Thread thread = new System.Threading.Thread(rn new System.Threading.ThreadStart(doWork));rn thread.Start();rn rnrnrnrn void doWork()rn rn tryrn rn System.Threading.Thread.Sleep(500);rn rn if (webBrowser1 != null)rn rn webBrowser1.Navigate(reporturl); //代码走到这边报上面的错误rn rn rn rn catch (Exception ex)rn rn MessageBox.Show(ex.Message);rn rn
请教C#中多线程“无法访问释放对象”错误处理
窗体代码:rn[code=C#]rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnusing System.Threading;rnrnnamespace DoorMan.Fromrnrn public partial class Wait_Form : Formrn rn private delegate void SetPos(int ipos);rn Thread fThread = null;rn public Wait_Form(string thime,Icon IcoFile)rn rn InitializeComponent();rn this.Text = thime;rn this.MaximizeBox = false;rn this.MinimizeBox = false;rn this.Icon = IcoFile;rn this.StartPosition = FormStartPosition.CenterScreen;rn //this.ControlBox = false;rnrn rn rn private const int CP_NOCLOSE_BUTTON = 0x200;rn protected override CreateParams CreateParamsrn rn getrn rn CreateParams myCp = base.CreateParams;rn myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;rn return myCp;rn rn rnrn rn private void SetTextMessage(int ipos)rn rnrn if (this.InvokeRequired)rn rn SetPos setpos = new SetPos(SetTextMessage);rn //<em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名:“Wait_Form”。rn this.Invoke(setpos, new object[] ipos );//报错语句rn rn elsern rn this.progressBar1.Value = Convert.ToInt32(ipos);rn rnrn rn private void SleepT()rn rn int whilaa = 0;rn while (whilaa );rn fThread.Abort();rn rnrn private void Wait_Form_Load(object sender, EventArgs e)rn rn fThread = new Thread(new ThreadStart(SleepT));//开辟一个新的线程rn fThread.IsBackground = false ;rn fThread.Start();rn rn rnrnrn[/code]rn在类中调用窗体的代码rn[code=C#]rn public class Wait_Threadingrn rn Wait_Form wait_win;rn //Thread fThread = new Thread(new ThreadStart(Wait_From_Show));//开辟一个新的线程rn // private delegate void SetPos(int ipos);rn //Thread fThread = null;rn Thread fThread = null;rn string thiem=null;rn Icon ico = null;rn /// rn /// 创建一个等待窗体rn /// rn /// string 窗体标题rn /// icon 窗体图标rn public Wait_Threading(string thiem_c, Icon ico_c)rn rn this.ico = ico_c;rn this.thiem = thiem_c;rn fThread = new Thread(new ThreadStart(Wait_From_Show));//开辟一个新的线程rn rn /// rn /// 开始显示窗体rn /// rn public void Strart()rn rn rn fThread.Start();rn return;rn rn /// rn /// 结束窗体显示rn /// rn public void Stop()rn rn //wait_win .Close ();rn fThread.Abort();rn return;rn rn private void Wait_From_Show()rn rn //<em>invoke</em> rn wait_win = new Wait_Form(thiem, ico);rn wait_win.TopMost = true;rn wait_win.ShowDialog ();rn rn rn[/code]rnrn在主程序中调用的过程rnrn[code=C#]rn Wait_Threading wait_Win = new Wait_Threading(sysinfo_sysconfig1.ThisSysTemName, sysinfo_sysconfig1.Ico_File);rn wait_Win.Strart();rn//等待比较耗时会造成程序假死的代码完成rn wait_Win.Stop();rn[/code]rnrn如上的代码,在运行的时候窗体已经关闭,但是在wait_win窗体中的this.Invoke(setpos, new object[] ipos );语句报错。rnrnrn请教,代码要怎么修改,才能不导致运行的时候这个错误发生?rnrn
无法访问释放对象对象名:“在释放后访问的 DataContext
运行报错,,请教
无法访问释放对象对象名:“在释放后访问的 DataContext。”。
帮帮忙啊.用的 LINQ
C# socket 无法访问释放的资源
客户端rn[code=C#]rn public string receiveContent(String destinationNo, String content)rn rn rn String stringdata;rn //将目标号码与短信内容拼接成一条String语句rn stringdata = destinationNo + content + "";rn IPAddress ipAddress = IPAddress.Parse("192.168.0.50"); rn int port = 1234; rn IPEndPoint remoteEP = new IPEndPoint(ipAddress, port); rn // 生成一个TCP/IP socket. rn Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rn Thread.Sleep(100);rn // 与目标终端连接. rn client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client);rn connectDone.WaitOne();rn Thread.Sleep(100);rn // 发送数据到远程终端. rn Send(client, stringdata);rn sendDone.WaitOne();rn //收到返回的数据rn // Receive(client);rn // receiveDone.WaitOne();rn client.Shutdown(SocketShutdown.Both); rn client.Close();rnrn return stringdata;rn rn private void ConnectCallback(IAsyncResult ar)rn rn rn // 从state<em>对象</em>获取socket. rn Socket client = (Socket)ar.AsyncState;rn // 完成连接. rn client.EndConnect(ar);rn rn connectDone.Set();rn rn private void Send(Socket client, String data) rn rn // 格式转换. rn byte[] byteData = Encoding.Unicode.GetBytes(data); rn // 开始发送数据到winform. rn client.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), client); rn rn private void SendCallback(IAsyncResult ar) rn rn // 从state<em>对象</em>中获取socket rn [color=#FF0000] rn Socket client = (Socket)ar.AsyncState; rn // 完成数据发送. rn int bytesSent = client.EndSend(ar);rn client.Shutdown(SocketShutdown.Both);rn client.Close();rn sendDone.Set();rn [/color] rnrn[/code]rn这里报错:说<em>无法访问</em>已<em>释放</em>的资源 rnrn[color=#FF0000] Socket client = (Socket)ar.AsyncState; rn // 完成数据发送. rn int bytesSent = client.EndSend(ar);rn [color=#FF6600] client.Shutdown(SocketShutdown.Both);[/color] rn client.Close();rn sendDone.Set();rn[/color] rnrnrn怎么解决啊 ?rnrn
关于无法访问释放对象”,老问题,不知道如何解决
最近做程序,采用定时器加委托方式对进行控制程序如下:rnrnrnrn[code=C#]rn System.DateTime oldtime=new DateTime();rn delegate void SetTextCallback(string strTime);//定义托管函数rn System.Timers.Timer t = new System.Timers.Timer(100);//实例化Timer类 rn bool closeFlag;rn public Form1()rn rn InitializeComponent();rn rnprivate void timeClass_Click(object sender, EventArgs e)rnrn t.Elapsed+= new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件; rn t.AutoReset = true;//设置是执行一次(false)还是一直执行(true); rn t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; rn rnrnpublic void theout(object source, System.Timers.ElapsedEventArgs e) //定时器调用rnrnrn System.DateTime currentTime = new DateTime();rn currentTime = DateTime.Now;rn string ss = (currentTime - oldtime).TotalMilliseconds.ToString();rn oldtime = currentTime;rn AddText(ss);rnrnrnvoid AddText(string strTime)rnrn //在此处使用过:this.isDisposed和this.Disposing进行判定,无法解决 rn if (this.listView1.InvokeRequired)rn rn SetTextCallback d = new SetTextCallback(AddText); rn this.Invoke(d, new object[] strTime );//此处出现,无法<em>释放</em>问题rn rn elsern rn string[] str = listView1.Items.Count.ToString(), "测试", strTime ;rn ListViewItem item = new ListViewItem(str);rn listView1.Items.Add(item);rn rnrnrnprivate void Form1_FormClosing(object sender, FormClosingEventArgs e)rnrn rn t.Close();//这个地方如果增加一个关闭t.close的话也不行,定时器整个form关闭前没有被关闭!rn Thread.Sleep(500);rnrnrn[/code]rnrnrn程序的主要思想在定时器的状态下,向listview表中写数据,现在问题是,如果程序关闭的时候,定时器不会关闭,这个时候往list中写数据,会提示From已被<em>释放</em>。rnrn在网上也看了很多类似的帖子,主要方法如下:rn1、使用this.isDisposed,this.Disposing进行判定rn2、在退出的时候增加一个判定的变量,如quitFlagrn3、退出的时候增加一个sleep也不行,总是感觉我的from被关闭的时候,定时器还没有被关闭rn以上方法都做过测试了,都不行!rnrn以上还有没有更好的方法,目前测试要是能在from关闭前!!完全!!关掉定时器,程序退出就没有问题!rn不要给我说用try...catch,这个根本就不是一个解决方法,说Try...catch的不给分,吼吼。rnrn
用不了snapchat怎么办
用不了snapchat<em>怎么办</em>,如果该文档<em>无法访问</em>
delphi 中对象所占内存空间的分配
delphi 中<em>对象</em>所占内存空间的分配
堆栈里的变量释放顺序与申请相反
堆栈里的变量<em>释放</em>顺序与申请相反,有需要的下载。
委托delegate invoke的简单源代码,适合委托初学者!
委托delegate <em>invoke</em>的简单源代码,适合委托初学者!
Dephi直接用代码操作Excel代码及说明
Dephi操作Excel方法大全,对于用dephi直接操作Excel文件,这些资料还是不错的。
另人崩溃的WCF,无法访问释放对象
问题:rn [WebMethod(EnableSession = true)]rn public object ReceiveMessage(Guid userid)rn rn if (OC.State == System.ServiceModel.CommunicationState.Closed) OC.Open();rn var select = from i in OC.ReceiveMessage(userid, (Model.User)Session["user"]) where i.Loaded == false select new SenderName = OC.GetInfoByID((Guid)i.Send_ID).Name,ID = i.ID ;rn OC.Close();rn return select;rn rn这里一共有两个地方调用wcf, OC.ReceiveMessage和 OC.GetInfoByIDrn前面调用的时候一切正常,到后面调用的时候就会报错: <em>无法访问</em>已<em>释放</em>的<em>对象</em>rnrn郁闷,中间就没有什么关闭的代码,搞不定啊。。。。。。。。。。。。。。rnrn
异步Tcp socket遇到无法访问释放对象 System.Net.Sockets
客户端有个启动访问服务端的按钮,点击第一次是没有问题,但是点击第二次就遇到了问题,报rn异常:遇到<em>无法访问</em>已<em>释放</em>的<em>对象</em> System.Net.Sockets。现在怀疑是服务端的异步发送rn引起的,handler.Shutdown(SocketShutdown.Both);handler.Close();客户端没有接收到传来的数据,为null,汇报异常,客户端报异常的代码我已经加红,请各位帮我看看咋回事,我不知道咋改了。rn服务端:rnThread newThread;rn public static ManualResetEvent allDone = new ManualResetEvent(false);rnrn public delegate void SetRichTextBoxReceiveCallback(string str);rn public SetRichTextBoxReceiveCallback setRichTextBoxReceiveCallback;rn private void SetRichTextBoxReceive(string str)rn rn if (rtb_Content.InvokeRequired)rn rn setRichTextBoxReceiveCallback = new SetRichTextBoxReceiveCallback(SetRichTextBoxReceive);rn rtb_Content.Invoke(setRichTextBoxReceiveCallback, str);rn rn elsern rn rtb_Content.AppendText(str);rn rn rnrn private void btn_Start_Click(object sender, EventArgs e)rn rn setRichTextBoxReceiveCallback = new SetRichTextBoxReceiveCallback(SetRichTextBoxReceive);rn ThreadStart ts = new ThreadStart(acceptConnect);rn newThread = new Thread(ts);rn newThread.Start();rn rnrn private void btn_Click(object sender, EventArgs e)rn rn //newThread.Abort();rn System.Environment.Exit(0); rn rnrn /// rn /// 开启一个socket监听线程rn /// rn private void acceptConnect()rn rn IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8090);rn Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rn // 绑定端口,并监听发起的连接请求。rn tryrn rn listener.Bind(endPoint);rn listener.Listen(100);rn while (true)rn rn // Set the event to nonsignaled state.rn allDone.Reset();rn // Start an asynchronous socket to listen for connections.rn SetRichTextBoxReceive("等待客户端连接请求中......\n");rn listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);rn // Wait until a connection is made before continuing.rn allDone.WaitOne();rn rn rn catch (Exception ex)rn rn SetRichTextBoxReceive(ex.Message.ToString());rn rn rnrn /// rn /// 接收连接请求rn /// rn /// rn public void AcceptCallback(IAsyncResult ar)rn rn // Signal the main thread to continue.rn allDone.Set();rnrn // Get the socket that handles the client request.rn // 获取处理客户端请求的套接字rn Socket listener = (Socket)ar.AsyncState;rn Socket handler = listener.EndAccept(ar);rnrn // Create the state object.实例化类StateObject。rn StateObject state = new StateObject();rn state.workSocket = handler;rn handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);rn rnrn /// rn /// 读取连接请求rn /// rn /// rn private void ReadCallback(IAsyncResult ar)rn rn string content = string.Empty;rnrn // Retrieve the state object and the handler socket from the asynchronous state object.rn StateObject state = (StateObject)ar.AsyncState;rn Socket handler = state.workSocket;rnrn // Read data from the client socket. rn int bytesRead = handler.EndReceive(ar);rnrn if (bytesRead > 0)rn rn // There might be more data, so store the data received so far.rn state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));rn // Check for end-of-file tag. If it is not there, read more data.rn content = state.sb.ToString();rn if (content.IndexOf("") > -1)rn rn // All the data has been read from the client. Display it on the console. rn SetRichTextBoxReceive("Read " + content.Length + " bytes from socket.\nData:" + content + ".\n");rn // Echo the data back to the client.rn Send(handler, content);rn rn elsern rn // Not all data received. Get more.rn handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);rn rn rn rnrn private void Send(Socket handler, String data)rn rn // Convert the string data to byte data using ASCII encoding.rn byte[] byteData = Encoding.ASCII.GetBytes(data);rn // Begin sending the data to the remote device.rn handler.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), handler);rn rnrn public void SendCallback(IAsyncResult ar)rn rn tryrn rn // Retrieve the socket from the state object.rn Socket handler = (Socket)ar.AsyncState;rn // Complete sending the data to the remote device.rn int bytesSent = handler.EndSend(ar);rn rtb_Content.Invoke(setRichTextBoxReceiveCallback, "Sent " + bytesSent + " bytes to client.\n");rn [color=#FF0000] handler.Shutdown(SocketShutdown.Both);rn handler.Close();[/color] rn catch (Exception ex)rn rn throw ex;rn rn rn
winform异步委托:无法访问释放对象对象名:“Form1”。
步骤是这样的。rn点击一个按钮然后开始异步委托执行一个循环。rn在循环中会访问到界面中的控件,由于是不同线程,需要唤起ui线程。rn[code=C#]rnpublic void SetValueFun(string str, string controlid, object form1)rn rn Form1 f1 = form1 as Form1;rn if (f1.InvokeRequired)rn rn f1.Invoke(new SetValue(SetValueFun), str, controlid, form1);rn rn elsern rn f1.Controls[controlid].Text = str;rn rn rnrnrn[/code]rn然后会抱<em>无法访问</em>已<em>释放</em>的<em>对象</em>。<em>对象</em>名:“Form1”。rn该怎么解决?知道问题出在哪,是因为窗体关闭了,但还是在继续执行。rn试过了rnif(f1.isDisposed)rn return;rn还是不行。
无法访问释放对象 DevExpress GridView和Popup控件
有这么个功能rnrn数量列,根据输入值的正负设置 对PopupContainerEdit设置不同的PopupContainerControlrn代码如下rn[code=C#]if (inputNum == 0)rn rn XtraMessageBox.Show("输入数量不能为零!");rn return;rn rn else if (inputNum > 0)rn rn rn _popupContainerBathEdit.Properties.PopupControl = this.popupContainerControlBath;rn rn elsern rn _popupContainerBathEdit.Properties.PopupControl = this.popupContainerControlMatSeq;rn rnrn _popupContainerBathEdit.ShowPopup();rn _popupContainerBathEdit.Focus();rn[/code]rnrn出现<em>无法访问</em>已<em>释放</em>的<em>对象</em>,问题是我不知道 <em>对象</em>什么时候被<em>释放</em>了rnrn请各位大大指教
无法访问释放对象。\r\n对象名:“System.Net.Sockets.Socket”。
在数据表中共有5个IP段,分别是123.164.122.1// 123.164.122.2// 123.164.122.3// 123.164.122.4// 123.164.122.5 虚幻从数据库中取出这些IP并使用socket通信连接.rnrnrn在成功连接了一个IP后,马上socket关掉,循环连接第二个,依次........rnrn明明已经成功<em>释放</em>,但是程序却提示:"<em>无法访问</em>已<em>释放</em>的<em>对象</em>。\r\n<em>对象</em>名:“System.Net.Sockets.Socket”。"rnrn该如何解决,是不是要等待时间<em>释放</em>,谢谢,在线等rnrnrn代码如下:rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Text;rnusing System.Windows.Forms;rnrnusing System.Data.SqlClient;rnusing System.Configuration;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.Threading;rnusing Microsoft.Win32;rnrnrnnamespace CommandSendrnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rn System.Net.Sockets.Socket su = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); rn System.Net.IPAddress addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);rn public string StrIp,StrState;rn //Thread t;rnrn #region 发送命令rn public void WaitData()rn rn tryrn rn rnrn string sql = " SELECT * FROM Ip ";rn DataTable dt = Conn.BindTable(sql);rn if (dt.Rows.Count != 0)rn rn for (int i = 0; i < dt.Rows.Count; i++)rn rn if (dt.Rows[i]["IP"].ToString().Replace("'", "''").Trim() != "")rn rn byte[] bytes = new byte[1024];rnrn System.Net.IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());rn System.Net.IPAddress[] ipAddress = ipHostInfo.AddressList;rn rn StrIp = dt.Rows[i]["IP"].ToString().Replace("'", "''").Trim();rn StrState = dt.Rows[i]["State"].ToString().Replace("'", "''").Trim();rnrn IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(StrIp), 9802);rn su.Connect(localEndPoint);rnrn su.Send(Encoding.Unicode.GetBytes(StrState.ToString().Replace("'", "''").Trim()));rnrn su.Receive(bytes);rn this.label1.Text = Encoding.Unicode.GetString(bytes).Replace("'", "''").Trim();rnrn //if (this.label1.Text == "OK")rn //rn su.Close();rn //rn rn rn rn rn rn rn catch (Exception ex)rn rn string a = ex.ToString();rn su.Close();rn rn finallyrn rn su.Close();rn rnrn rn #endregionrnrn #region 初始化rn private void Form1_Load(object sender, EventArgs e)rn rn WaitData();rn rn #endregionrn rn
WPF Socket编程,无法访问释放对象错误,求帮忙
WPF Socket编程,我有两个按钮,一个连接,一个关闭,点完连接按钮,再点关闭,程序提示错误: <em>无法访问</em>已<em>释放</em>的<em>对象</em>;debug调试异常出现在接收的回调函数里,我关闭函数这么写的,大家帮忙看看有什么问题吗?rn连接函数:rnprivate void btnConnectServer_Click(object sender, RoutedEventArgs e)rn rn m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rn IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse(txtIPAddress.Text), 1024);rnrn tryrn rn m_clientSocket.Connect(remoteEndPoint);rn if (m_clientSocket.Connected)rn rn m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);rnrn btnConnectServer.IsEnabled = false;rn btnDisconnectServer.IsEnabled = true;rnrn this.AddRunningInfo(">> " + DateTime.Now.ToString() + " Client connect server success.");rnrn m_bTCPIPConnect = true;rn rn rn catch (Exception)rn rn this.AddRunningInfo(">> " + DateTime.Now.ToString() + " Client connect server fail.");rn m_clientSocket = null;rn rn rn关闭函数:rnprivate void btnDisconnectServer_Click(object sender, RoutedEventArgs e)rnrn if (m_clientSocket != null)rn rn m_clientSocket.Close();rnrn btnConnectServer.IsEnabled = true;rn btnDisconnectServer.IsEnabled = false;rn btnSendMsg.IsEnabled = false;rnrn this.AddRunningInfo(">> " + DateTime.Now.ToString() + " Client disconnected.");rnrn m_bTCPIPConnect = false;rn rn rnrn回调函数:rnprivate void ReceiveCallBack(IAsyncResult ar)rn rn tryrn rn int REnd = m_clientSocket.EndReceive(ar);rn string strReceiveData = Encoding.Default.GetString(m_receiveBuffer, 0, REnd);rn rn [color=#FF0000] m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);[/color] rn rn catch (Exception ex)rn rn throw new Exception(ex.Message);rn rn rnrndebug感觉红色部分出错,请大家帮忙看看,先谢谢了
C# winform 运行前释放令一个文件(或DLL)
直接生成一个exe 运行exe才<em>释放</em>需要的dll文件
VS2008-免注册-单进程创建多个大漠对象-例子
VS2008-免注册-单进程创建多个大漠<em>对象</em>-例子
C#内存释放-线程控制-线程启动-线程暂停
不多说请看源码,对线程级别控制,对线程的起动/暂停,同时对内存的<em>释放</em>,希望对大家有用
wcf动态调用
wcf 用代理类的方法动态调用,不用去引用直接使用,使用的方法全在类注释上面。
对象释放和垃圾收集机制.txt
<em>对象</em>的<em>释放</em>和垃圾收集机制.txt <em>对象</em>的<em>释放</em>和垃圾收集机制.txt <em>对象</em>的<em>释放</em>和垃圾收集机制.txt <em>对象</em>的<em>释放</em>和垃圾收集机制.txt <em>对象</em>的<em>释放</em>和垃圾收集机制.txt
Syspro BO invoke
Invoke syspro BO in C#
C# ftp上传图片的时候,报错“无法访问释放的资源”
[code=C#][/code]/// rn /// 上传文件到FTP服务器上【注意:当文件存在时,覆盖原来的文件】rn /// rn /// 本地文件路径(例如:d:\ftp_upload1.txt)rn /// FTP服务器路径(例如:ftp://192.168.10.176/ftp_upload.txt )rn /// 用户名rn /// 密码rn /// 执行结果rn /// 0:成功; 1:失败rn public int UploadFun(string fileName, string uploadUrl, string userName, string password, ProgressBar prog,Label lb, ref string strResult)rn rn Stream requestStream = null;rn FileStream fileStream = null;rn FtpWebResponse uploadResponse = null;rn int bytesRead = 0;rn tryrn rn FileInfo file = new FileInfo(fileName);//0.0rn FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uploadUrl);rn uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;rnrn uploadRequest.Proxy = null;rn uploadRequest.KeepAlive = false;rn //uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;rn uploadRequest.UsePassive = true;rn NetworkCredential nc = new NetworkCredential();rn nc.UserName = userName;rn nc.Password = password;rn uploadRequest.Credentials = nc; //修改getCredential();错误2rnrn uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();rn uploadRequest.ContentLength = file.Length;//0.0rn int buffLength = 1024;rn byte[] buffer = new byte[buffLength];rn int contentLen;rn fileStream = File.Open(fileName, FileMode.Open);rn requestStream = uploadRequest.GetRequestStream();rnrn contentLen = fileStream.Read(buffer, 0, buffLength);rnrn int allbye = (int)file.Length;rn if (prog != null)rn rn prog.Visible = true;rn prog.Maximum = (int)allbye;rnrn rnrn int startbye = 0;rnrn while (contentLen != 0)rn rnrn startbye = contentLen + startbye;rn requestStream.Write(buffer, 0, contentLen);rnrn if (prog != null)rn rn prog.Value = (int)startbye;rn rn contentLen = fileStream.Read(buffer, 0, buffLength);rn bytesRead = Convert.ToInt32((float)startbye / (float)allbye * 100);rn if (lb != null)rn rn if (bytesRead < 100)rn rn lb.Visible = true;rn lb.Text = "当前上传进度" + bytesRead.ToString() + "%";rn rn elsern rn lb.Text = "完成";rn rn rn rnrn Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息rn rn requestStream.Close();rn fileStream.Close();rn uploadResponse.Close();rnrn if (uploadResponse.StatusCode == FtpStatusCode.ClosingData)rn rn strResult = "上传成功,文件:" + fileName;rn return 0;rn rn elsern rn strResult = "上传文件失败,code=" + uploadResponse.StatusCode.ToString();rn rnrn rn catch (UriFormatException ex)rn rn strResult = ex.Message;rn rn catch (IOException ex)rn rn strResult = ex.Message;rn rn catch (WebException ex)rn rn strResult = ex.Message;rn rn finallyrn rn if (uploadResponse != null)rn uploadResponse.Close();rn if (fileStream != null)rn fileStream.Close();rn if (requestStream != null)rn requestStream.Close();rn rnrn return 1;rn rn我这个方法再同一个按钮下调用了3次,第一次调用不报错,第二次的时候就报错,第三次不报错,再一次就又报错,不知道怎么回事,请各位帮我一下!!
c# 多线程 同步问题解决
<em>c#</em> 多线程 lock monitor 同步问题解决
用队列方式解决非UI线程操作UI,比invoke强大一万倍
基于接口和队列的线程操作UI方式 在实际开发应用中,非UI线程操作UI是普遍存在的,在.net下一般是通过Control.Invoke的方法来进行操作,但到处都是Control.Invoke代码维护可是一件麻烦的事情。通过接口和队列来规范非UI线程操UI的实现。
C# Invoke调用Demo
C# Invoke多线程调用Demo......
无法访问释放对象 求解决 #c
程序没有错误但是在运行结束是会提示<em>无法访问</em>以<em>释放</em>的<em>对象</em>rnrnrn未处理 System.ObjectDisposedExceptionrn Message="<em>无法访问</em>已<em>释放</em>的<em>对象</em>。\r\n<em>对象</em>名:“FormP2P”。"rn Source="System.Windows.Forms"rn ObjectName="FormP2P"rn StackTrace:rn 在 System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)rn 在 System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)rn 在 P2PExample.FormP2P.ShowMyMessage(String str) 位置 G:\网络通信\P2PExample\P2PExample\FormP2P.cs:行号 152rn 在 P2PExample.FormP2P.Listening() 位置 G:\网络通信\P2PExample\P2PExample\FormP2P.cs:行号 101rn 在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)rn 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)rn 在 System.Threading.ThreadHelper.ThreadStart()rn InnerException: rnrn代码如下:rn private void ShowMyMessage(string str)rn rn //比较调用的线程和创建的线程是否为同一线程rn //如果不是,结果为truern if (this.listBoxMessage.InvokeRequired == true)rn rn //如果结果为true,则自动通过代理执行else中语句的功能(注意:是else不是IF)rn //这里只需要传入参数Str即可rn //但是执行的功能会始终与else中的指定的功能相同,区别仅是通过代理完成rn ShowMessageDelegatel messageDelegate = new ShowMessageDelegatel(ShowMyMessage);rn this.Invoke(messageDelegate, new object[] str );-----------------这行运行结束时报错rn rn elsern rn //在这里指定如果是同一个线程需要完成什么功能rn //如果是不同的线程,系统会自动通过代理实现这里指定的功能rn listBoxMessage.Items.Add(str);rn
TidhttpServer解决神思二代证读取问题
经过1个晚上+1个白天,终于通过曲线救国,解决了神思二代证读卡器无法再chrome下使用的问题。 大概思路是: 1、使用delphi7的TidHttpServer写一个web服务, 通过该EXE程序取读取神思二代证读卡器。 2、web页面下编写js脚本 注释: httpServer代码取自网络。
SAP传输请求已释放释放状态修改
SAP传输请求已<em>释放</em>未<em>释放</em>状态修改 ,可以将已<em>释放</em>的请求变成未<em>释放</em>。
关于C# Invoke
rnrn RT,想知道具体要在什么时候使用 ?rnrn 请高人指点,小弟感激不尽。rnrn 谢谢 !
C#窗体中Invoke和BeginInvoke方法详解
C#窗体中Invoke和BeginInvoke方法详解
急急急急急急急急急急???????c# socket编程中出现:无法访问释放对象
客户端想要连续从固定路径读取图片,然后将图片发送给服务器端,但是我却经常出现发送一张图片之后报rn:<em>无法访问</em>已<em>释放</em>的<em>对象</em> <em>对象</em>名“System.Net.Socket.TcpClient” rn [color=#FF0000][/color]客户端简单起见就写循环体里面东西了rn[color=#000000][/color]rnrnrn tryrn rn TcpClient client = new TcpClient();rn client.Connect(System.Net.IPAddress.Parse("166.111.66.37"), 8880);rnrnrn string[] files = Directory.GetFiles(@"C:\Documents and Settings\Administrator.B3B7434061FE4C4\My Documents\Visual Studio 2005\Projects\MyProject\通信Client端\通信Client端\bin\Debug\");rnrnrn foreach (string file in files)rn rnrn string filefullname = Path.GetFileName(file);rn string suffix = Path.GetExtension(file);rnrnrn if (suffix == ".jpg")rn rn rn rn rn myMedia.FileName = System.IO.Path.GetExtension(filefullname);rn Console.WriteLine(filefullname);rn FileStream fs = new FileStream(filefullname, FileMode.Open);rnrnrn myMedia.LoadFileData(fs);rnrnrn NetworkStream clientStream = client.GetStream();//创建接收用的Streamrnrn MemoryStream myFile = new MemoryStream();rn BinaryFormatter formatter = new BinaryFormatter();rn formatter.Serialize(myFile, myMedia);rnrnrnrn arrbyte = myFile.ToArray();rnrn myFile.Close();rn clientStream.Write(arrbyte, 0, arrbyte.Length);rn clientStream.Close();rn client.Close();rn rn rn rn[color=#FF0000][/color]服务器端rnrnrnrnnamespace ldyServerrnrn public partial class Form1 : Formrn rn public Form1()rn rn InitializeComponent();rn rn private SerializeFile myMedia = new SerializeFile();rn private SerializeFile newFile = null;rn private void Form1_Load(object sender, EventArgs e)rn rn rn rnrn private void button1_Click(object sender, EventArgs e)rn rn this.button1.Enabled = false;rn //新建监听 rn TcpListener listener = new TcpListener(IPAddress.Parse("166.111.66.37"), 8880);rn listener.Stop();rn //开始监听 rn listener.Start();rn while (true)rn rn const int bufferSize = 40960000;rn TcpClient client = listener.AcceptTcpClient(); rn //接收客户端传过来的数据 rn NetworkStream clientStream = client.GetStream();//提供网络访问的数据流rn byte[] responseBuffer = new byte[bufferSize];//提供一个缓冲区rn MemoryStream memStream = new MemoryStream();//将网络接收的数据流储存起来rn int bytesRead = 0;rn dorn rn bytesRead = clientStream.Read(responseBuffer, 0, bufferSize);rn memStream.Write(responseBuffer, 0, bytesRead);rn rn rnrn while (bytesRead > 0); rn BinaryFormatter formatter = new BinaryFormatter(); rn memStream.Seek(0, SeekOrigin.Begin);rn newFile = (SerializeFile)formatter.Deserialize(memStream);//反序列化以创建与原图形相同的<em>对象</em>图形;rn //自定义存放目录 newFile.FileName 存放在debug下面rn FileStream fs = new FileStream(newFile.FileName, FileMode.OpenOrCreate);rn BinaryWriter w = new BinaryWriter(fs);rn w.Write(newFile.FileData);rn fs.Close();rn memStream.Close();rn MessageBox.Show("成功");rn rn rnrn rnrn rnrnrn rn
mac: tensorflow-1.3.0-py2-none-any.whl
tensorflow官网(www.tensorflow.org) <em>无法访问</em><em>怎么办</em>? 不用管; 从github 下载 tensorflow ,编译失败<em>怎么办</em>? 不用管。 直接从这里下载tensorflow 1.3 版本, 注意: 这是 Mac 版本哦!
P/Invoke Interop Assistant
P/Invoke Interop Assistant,用来调试C++写的动态库转换成C#或VB.NET
关于对象对象释放的困惑
我在使用列表类型的时候,为了便于下一步的数据操作,使用了addobject方法,该方法需要一个<em>对象</em>的指针,于是我建立了一个TobjectList的全局<em>对象</em>Alist,并且使用自定义的类声明了一个局部<em>对象</em>AData,在循环里面给局部<em>对象</em>AData赋值。当我需要加到列表时,发现AData不能<em>释放</em>,否则出现取地址错误!他会自动<em>释放</em>吗?,另外要使用列表的Addobject方法,使用addobject(Pointer(Ainteger))与Addobject(Alist.items)哪个好些呢?Addobject(Alist.items)是不是占用了更多的内存?rn望指教! rn
无法访问名为“System.Net.Sockets.NetworkStream”的已处置对象
各位,我根据现有的c#spider代码修改一下让它在网上抓网页,分析链接。但总是有这个Exception,具体内容如下:rn未处理的“System.ObjectDisposedException”类型的异常出现在 system.dll 中。rnrn其他信息: <em>无法访问</em>名为“System.Net.Sockets.NetworkStream”的已处置<em>对象</em>。rnrn它指示的错误代码是:rnwhile( (line = reader.ReadLine())!=null )
无法访问名为“Main”的已处置对象。的问题
我在load调用一个sub子程序后,加了一个me.dispose()运行出现这样的情况,请教rnrn未处理的“System.ObjectDisposedException”类型的异常出现在 system.windows.forms.dll 中。rnrn其他信息: <em>无法访问</em>名为“Main”的已处置<em>对象</em>。
无法访问名为“TreeView”的已处置对象,why?
private void frmMain_Load(object sender, System.EventArgs e)rn rn tryrn rn //用户登录窗口rn frmLogon frmLogon = new frmLogon();rn if (DialogResult.OK != frmLogon.ShowDialog())rn Close();rn stbpnlOperator.Text = frmLogon.strOperator;rn CommonClass.strOperator = frmLogon.strOperator;rn CommonClass.bIsSuperOperator = CommonClass.IsSuperOperator();rn //受理信息rn CommonClass.acceptInfo.strOperatorID = frmLogon.strOperator;rn CommonClass.acceptInfo.lAreaID = 1000;rn CommonClass.acceptInfo.lSystemID = 20400;rn CommonClass.acceptInfo.strDateTime = "2003/09/24";rn CommonClass.acceptInfo.strIP = "131.101.1.110";rn CommonClass.acceptInfo.strRecordID = "log001";rnrn //初始化tvwMainrn tvwMain.Nodes.Clear();rn tvwMain.SelectedNode = tvwMain.Nodes.Add("Root");rn tvwMain.SelectedNode.Nodes.Add("");rnrn //动态添加菜单rn DynamicMenu(this.menuItemQuery);rn rn catch(Exception ex)rn rn throw(ex);rn rn rn执行到tvwMain.Nodes.Clear()时抛出ObjectDisposedException异常,信息:<em>无法访问</em>名为“TreeView”的已处置<em>对象</em>。我看了msdn里的说明,在下列代码中会抛出ObjectDisposedExceptionrn[C++] rn#using rnrnusing namespace System;rnusing namespace System::IO;rnrnvoid main() rn MemoryStream* ms = new MemoryStream(16);rn ms->Close();rn try rn ms->ReadByte();rn catch (ObjectDisposedException* e) rn Console::WriteLine(S"Caught: 0", e->Message);rn rnrn问题是,我的代码中,tvwMain是在设计期放到form上的在tvwMain.Nodes.Clear()这段代码之前没有进行任何操作,而起何谓已处置<em>对象</em>?还是不明白。rn软件环境为.ner framework1.1 windowsxprn
无法访问名为“Note”的已处置对象????
“ <em>无法访问</em>名为“Note”的已处置<em>对象</em>”?????rnrn(C#.NET windows应用)rnrnNote是一个Windows窗体:Note.cs,可以类似MSN的提示窗口,从左下角滑进、停顿、再滑出,我用了一个timer作控制,一旦条件符合,就激活Note窗口。但每次调用只出现第一次,之后当条件符合时可以注意到任务栏图标有反应,但窗口不弹出,有时会出现如题的错误提示,没有头绪,不知从哪里入手调试,请各位帮帮忙!!!
???无法访问名为“System.Net.Sockets.NetworkStream”的已处置对象
各位,我根据现有的c#spider代码修改一下让它在网上抓网页,分析链接。但总是有这个Exception,具体内容如下:rn未处理的“System.ObjectDisposedException”类型的异常出现在 system.dll 中。rnrn其他信息: <em>无法访问</em>名为“System.Net.Sockets.NetworkStream”的已处置<em>对象</em>。rnrn它指示的错误代码是:rnwhile( (line = reader.ReadLine())!=null )
关于C#字节数组对象释放的问题
小弟是C#新手,觉得字节数组<em>对象</em>应该是非托管资源吧,最主要的是我还将他定义为静态的了,所以<em>释放</em>的问题就更显得凌乱了rnrn如下,我定义了一个这样的变量rn[img=http://img.bbs.csdn.net/upload/201601/21/1453357646_524887.png][/img]rn第一次使用他的时候,我用new给他装了一个40M这么大的文件字节数rn[img=http://img.bbs.csdn.net/upload/201601/21/1453357653_796815.png][/img]rn第二次我还是就这么使用他,再用new重新给他装了一个30M这么大的文件字节数rn[img=http://img.bbs.csdn.net/upload/201601/21/1453357653_796815.png][/img]rn那么至此,问题来了,之前那40M文件存放的内存应该是没有<em>释放</em>的,如果是非托管资源的话GC也不会管的,那我该怎么<em>释放</em>这个filebytes,直接置空的话肯定是没效果的,求高手解惑!
精通.NET互操作 P/Invoke,C++Interop和COM Interop 【带书签目录】
自己整理了书签目录,值得反复多次学习。 《精通.NET互操作P/Invoke,C++Interop和COM Interop》介绍Windows平台上的托管代码与非托管代码之间进行互操作的各种技术,包括由.NET提供的各种互操作方法、属性以及各种工具的用法及其工作原理。《精通.NET互操作P/Invoke,C++Interop和COM Interop》包括3部分,平台调用——主要用于解决在托管代码中调用非托管程序设计语言编写的flat API(如Win32 API、C/C++风格的API等)的问题;C++ Interop——技术专门用于解决托管代码与C++编写的非托管代码之间的互操作问题;COM Interop——介绍了使用COM Interop解决在托管代码中调用COM组件,以及在COM中调用托管类型的问题。《精通.NET互操作P/Invoke,C++Interop和COM Interop》适合所有在开发过程中需要涉及到托管代码与非托管代码进行交互操作的.NET开发人员阅读使用。不论是开始学习.NET编程的开发人员,还是刚刚接触互操作的资深.NET开发人员,都能从《精通.NET互操作P/Invoke,C++Interop和COM Interop》中获益。
关于GDI对象释放
如下代码:rnCPen pen(PS_SOLID, 1, m_color);rn这样定义的pen<em>对象</em>需要显式调用DeleteObject来<em>释放</em>GDI<em>对象</em>吗?
如何在C++中实现类似JAVA的自动垃圾回收算法
由于和C语言相比,C++在类的构造和构析时,会自动调用构造函数和构析函数.这使得在C++中实现自动垃圾回收成为可能.本文描述了如何在C++中实现类似JAVA的自动垃圾回收.
关于对象释放技术
<em>对象</em>生成以后如果不用了,<em>释放</em>掉可以节省系统资源,有时也是必需的。要<em>释放</em>一个<em>对象</em>,只要我们调用他的free方法就行了。但是有时我们想在某个<em>对象</em>的某个事件发生后将其<em>释放</em>掉,比如有一个button,现在想在他的onclick事件产生后将button<em>释放</em>掉。这是该怎么写程序呢?
关于对象释放
我拉了一个TCombobox控件rn然后TCombobox.AddObject('FName',Pointer(qyTemp.FieldByName('FItemID').AsInteger));rnrn或者TCombobox.AddObject('FName',TObject(qyTemp.FieldByName('FItemID').AsInteger));rnrnrn窗体<em>释放</em>的时候需要<em>释放</em>TCombobox的<em>对象</em>吗?rn如何<em>释放</em>|?????
关于对象释放问题
rn 这个是f2的rn f3.Show()rn Dim strconn As String = "provider=microsoft.jet.oledb.4.0;data source = D:\我的项目\车牌管理系统\chepaihao.mdb"rn Dim objconn As New OleDb.OleDbConnection(strconn)rn Dim objadap As New OleDb.OleDbDataAdapter()rn Dim objdset As New DataSet()rn Dim strsql As Stringrnrn strsql = "select * from 车牌信息 where 姓名='" & TextBox1.Text & "'"rn objconn.Open()rn objadap.SelectCommand = New OleDb.OleDbCommand(strsql, objconn)rn objconn.Close()rn objdset.Clear()rn objadap.Fill(objdset, "车牌信息")rnrn这个是f3的rn Dim strStartUpPath, strProductName, strApplicaPath As Stringrn Dim i, j As Integerrn strStartUpPath = Application.StartupPathrn strProductName = Application.ProductNamern i = InStr(strStartUpPath, strProductName)rn j = Len(strProductName)rn strApplicaPath = Mid(strStartUpPath, 1, i + j)rn 'stuConnStr = "provider=microsoft.jet.oledb.4.0;data source=" & strApplicaPath & "chepaihao.mdb"rn stuConnStr = "provider=microsoft.jet.oledb.4.0;data source=D:\我的项目\车牌管理系统\chepaihao.mdb"rn stuConn = New OleDb.OleDbConnection(stuConnStr)rn stuConn.Open() rn stuSqlStr = "select * from 车牌信息"rn stuAdp = New OleDb.OleDbDataAdapter(stuSqlStr, stuConn)rn stuConn.Close()rn stuAdp.Fill(stuDataSet, "车牌信息")rn TextBox1.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.车牌号"))rn TextBox2.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.姓名"))rn TextBox3.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.年龄"))rn TextBox4.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.性别"))rn TextBox5.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.住址"))rn TextBox6.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.车子型号"))rn TextBox7.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.上牌地"))rn TextBox8.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.是否年检"))rn TextBox9.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.违章记录"))rn TextBox10.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.联系方式"))rn TextBox11.DataBindings.Add(New Binding("text", stuDataSet, "车牌信息.城市"))rn MyBind = Me.BindingContext(stuDataSet, "车牌信息")rnrnrnrn在我用f2的Button点查询的时候进入f3,然后把f3的窗体关掉,再重新点的时候就会显示<em>对象</em>已经<em>释放</em>,出现错误。rn请问我应该在什么地方把原来的那个数据<em>对象</em>关闭了才可以解决这个问题?我是新人,谢谢
如何判断cdc对象是否已释放
如何判断cdc<em>对象</em>是否已<em>释放</em>
如何强制释放已使用的对象
最近做一个winform项目,由于是远程连接数据库,为了减少查询数据库的次数,我把数据导入到业务层的一个静态<em>对象</em>集合,此集合作为上层查询的数据源,以后每次查询,先判断是否更新,如果没更新就直接从这个静态<em>对象</em>集合中查询。为了避免上层对次静态<em>对象</em>的直接引用,我在每次调用时都先做一次深度复制,即新开一个集合实例,这时候问题就来了,因为每一次深度复制都会创建一个新的实例,尽管这样避免了数据源(静态<em>对象</em>集合)被直接引用,但是每次查询都会创建一个实例,这样时间长了担心会消耗过多的资源,我是在静态类中执行这样的操作,程序运行过程中,此静态类作为业务层关键类是不会被dispose的,随着查询次数增多,实例会越开越多,有什么办法能强制<em>释放</em>已使用的<em>对象</em>?
C#对象和Xml对象的相互转化
C#<em>对象</em>和Xml<em>对象</em>的相互转化 C#<em>对象</em>和Xml<em>对象</em>的相互转化
c# invoke
第一种Invoke:nAction ac = new Action(x => lable.Text = x; );nac.Invoke(s);nn第二种Invoke: nif (this.InvokeRequired)nnAction ac = new Action(x => lable.Text = x; );nac.Invoke(s);nthis.Invoke(ac,x)nnelsennlable.Text = s;nn两个傻傻分不清,求告知
C#中如何释放对象~?
在C++中我new一个<em>对象</em>后最后都要delete掉,在C#中好像没有delete操作符,那么该如何<em>释放</em><em>对象</em>呢~?
C# WinForm new对象释放??
程序框架左侧是菜单,右侧显示窗口,点击菜单new<em>对象</em>将Form在右侧panel控件中显示,问题是我点击一次菜单new一次然后在任务管理器中查看内存在增加,点击多次以后程序就断掉,我想问怎么可以<em>释放</em>new<em>对象</em>???还有我程序运行后内存占50M还会慢慢增加怎么进行<em>释放</em>??
c# 中Invoke和BeginInvoke_区别
<em>c#</em> 中Invoke和BeginInvoke_区别, 适合初学者,一看就会
未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
初次登录SQL Server显示的错误,已经解决方法可行!希望能帮助到大家。
关于C# delegate和invoke疑惑
本人是C#新手,在写一个多线程的代码,在子线程中需要调用到主线程的方法,所以用到了delegate对该方法进行了委托,后来同学说用<em>invoke</em>更好,所以就有点迷糊,不明白用<em>invoke</em>更好在哪,部分代码如下:rn[code=csharp]namespace Interfacernrn // 对主线程的setFrameViewImage进行委托rn delegate void deleteFrameView(IntPtr pFrame);rnrn class RetriveFrameThreadrn rn private IntPtr pframe;rn private RegisterForm m_Form;rn private deleteFrameView dispFrameView;rnrn public RetriveFrameThread(Form form)rn rn pframe = IntPtr.Zero;rn m_Form = form as RegisterForm;rn if (form != null)rn rn dispFrameView = new deleteFrameView(m_Form.setFrameViewImage);rn rn rnrn public void run()rn rn while (true)rn rn if (CameraDll.retriveFrame(ref pframe) == 0)rn rn //dispFrameView(pframe); 直接使用delegatern m_Form.Invoke(dispFrameView, pframe); 使用窗体的<em>invoke</em>rn rn Thread.Sleep(10);rn rn rn rn[/code]rn两种方法都能实现同一功能,但区别到底在何处,求论坛上的大神指导指导[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif][/img]
C#串口操作小例子,P/Invoke
C#串口操作小例子,P/Invoke 调用...........
关于java内存泄漏
如何管理内存,及内存泄漏。Java的内存管理就是<em>对象</em>的分配和<em>释放</em>问题。监视<em>对象</em>状态是为了更加准确地、及时地<em>释放</em><em>对象</em>,而<em>释放</em><em>对象</em>的根本原则就是该<em>对象</em>不再被引用。
csharp结束进程
采用两种方式结束进程。 1、调用cmd.ext 2、调用process.kill()
C#中动态声明与使用对象数组实例
C#中动态声明与使用动态数组的实例。不是最好的,演示了基本功能:数组的声明与使用,先前数据的保护,<em>对象</em>的实例化,<em>对象</em>空间<em>释放</em>。
invoke回调
讲解java的相关设计,回调的方法,一些思想。dengdeng zzzzz
关于内网地址无法访问公网VIP地址的解决方案
<em>关于</em>内网地址<em>无法访问</em>公网VIP地址的解决方案
三星手机出现SecSetupWizard已停止的错误的解决方案
三星手机出现SecSetupWizard已停止的错误的解决方案
关于Excel对象释放问题:
'rn'办函数创建一个Excel文件rn'strPath 是文件的路径rnPublic Function CreateExcelFile(strPath As String, iSheetCount As Integer)rn rn Dim xls As New Excel.Applicationrn Dim exlBook As New Excel.Workbookrn Dim fso As New FileSystemObjectrn rn If fso.FileExists(strPath) Then fso.DeleteFile strPathrn Set exlBook = xls.Workbooks.Addrn exlBook.Worksheets.Add Count:=iSheetCount, After:=Sheets("Sheet3")rn rn exlBook.SaveAs strPathrn exlBook.Closern Set exlBook = Nothingrn rn xls.Quitrn Set xls = Nothingrn rn Set fso = NothingrnEnd Functionrnrn打算创建一个Excel文件,其中包含了指定数目的工作表,操作已经成功。但是操作完成之后Excel<em>对象</em>没有<em>释放</em>,百思不得其解,求解!!!!rnrn请帮忙调以上的代码,使其能完成同样的功能在函数完成时将Excel<em>对象</em><em>释放</em>。
关于GDI+对象释放问题
在使用GDI+库绘图的时候,调用了GdiplusShutdown,是否就不需要手动来<em>释放</em>GDI+<em>对象</em>?rn 我尝试在调用了GdiplusShutdown<em>释放</em>一个image<em>对象</em>,但是<em>释放</em>的时候报错。rn 而在GdiplusShutdown之前<em>释放</em>image<em>对象</em>则成功了。rn [code=C/C++]rn Image* imgGif = new Image(“res\\003.gif”);rn .......rn //delete imgGif;//这里<em>释放</em>成功rn GdiplusShutdown(m_gdiplusToken);rn delete imgGif; //这里<em>释放</em>的时候报错rn[/code]rn 那是否意味着我以后可以放心大胆的使用GDI+<em>对象</em>而不需要记得什么时候<em>释放</em>他们,而在最后使用GdiplusShutdown函数将他们全部<em>释放</em>掉呢?
一个关于释放对象的问题
在bcb6.0中rn1.rn我用treeview控件,用到了treenode的data属性,有如下类似的操作rntreenode->data = new int[10];rn然后将treenode其<em>释放</em>掉rntreenode->free();rnrn会不会引起内存泄漏rnrn2.rn我用到一个结构rnstruct S{rn int *pInt;rn ...rn}*pS;rnpS = new S;rnpS->pInt = new int[10];rndelete(pS);rnrn会不会引起内存泄漏rnrn3.rn用到一个类rn我用到一个结构rnclass TS{rn int *pInt;rn ...rn;rnpS = new TS;rnpS->pInt = new int[10];rndelete(pS);rnrn会不会引起内存泄漏rn
关于gdi对象释放问题
我的一个 类成员变量rnCBitmap m_NetSetBmp;rnrn在初始化时:rnm_LoninBmp.Attach((HBITMAP)::LoadImage(NULL,".\\res\\login.bmp",rn IMAGE_BITMAP,0,0,LR_LOADFROMFILE));rn绘图时:rnShowBitmap(&pdc,&m_NetSetBmp,rcBmp,RGB(214,238,255));rn函数体:rnbool ShowBitmap(CDC *pDC,CBitmap* bmp,CRect rect,COLORREF MColor)rnrn return ShowBitmap((HDC)pDC->m_hDC,(HBITMAP)bmp->m_hObject,rect,MColor);rnrnbool ShowBitmap(HDC hDC,HBITMAP hbmp,CRect rect,COLORREF MColor)rnrn if(GetObjectType(hbmp) != OBJ_BITMAP)rn return false;rn int oldMode;rn BITMAP bm;rn HBITMAP oldHbitmap;rn HDC memhdc;rn memhdc = CreateCompatibleDC(hDC);rn rn GetObject(hbmp,sizeof(BITMAP),&bm);rn oldHbitmap=(HBITMAP)::SelectObject(memhdc,hbmp);rnrn if(MColor==-1)rn rn oldMode = SetStretchBltMode(hDC,COLORONCOLOR);rn StretchBlt(hDC,rect.left,rect.top,rect.Width(),rect.Height(),memhdc,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);rn SetStretchBltMode(hDC,oldMode);rn rn rn elsern rn TransparentBlt(hDC,rect.left,rect.top,rect.Width(),rect.Height(),rn memhdc,0,0,bm.bmWidth,bm.bmHeight,MColor);rn rn SelectObject(memhdc,oldHbitmap);rn DeleteDC(memhdc);rn return true;rnrnrn有两个问题:rn1:rnm_NetSetBmp 用调用m_NetSetBmp.DeleteObject();吗.rn2:rn我的绘图有时会失败.画出奇怪图片(我截了图,不知道怎么发.);
关于Java对象释放的问题
由于我在Java程序中声明了好多<em>对象</em>,占用了内存空间,程序结束时没有将这些<em>对象</em>或<em>对象</em>的引用进行<em>释放</em>,从而导致Java虚拟机进行垃圾回收(GC)时,不能够回收这些<em>对象</em>。这样,Java所用的内存就会一直增加,直至溢出.rn请问这个问题在程序中如何解决,我已经将所有<em>对象</em>设置成null了..
关于OleDb.OleDbConnection对象释放问题
假如说我定义了这样一个语句:rnPrivate Conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConnStr)rnrnConn<em>对象</em>该怎样<em>释放</em>才算合理呢?rnrn我测试过:1。只用set conn = nothing rn <em>对象</em>能<em>释放</em>,但要过几分钟才行。rn 2。用conn.close() 好象也不能马上<em>释放</em>,而且在返回OleDbDataReader时会出错,rnrnrn我希望:1。调用的接口能够调用一个就<em>释放</em>一个连接。rn 2。有同一个组件里,不会因连续调用了两个接口就产生两个连接。rnrnrn请各位多指都教 ,它苦我多时,我快发疯了!
新手关于对象释放的问题
function TShttp.getpipei(url:string;url2:string):k;rnvarrn rex : TRegex;rn pipei:TMatch;rn pipei2:TMatchCollection;rn a,i,p,x:integer;rn idhttp1:Tidhttp;rn url_two:string;rnbeginrn idhttp1:= Tidhttp.Create(nil); rn code:=idhttp1.Get(url); rn idhttp1.Free; // 是不是应该在这里<em>释放</em>???rn rex:=TRegex.Create(zhengze);rn pipei:=rex.Match(code);rn rex.Free; // 还有这个, 是不是应该在这里<em>释放</em>???rnend;rnrn自己写的一个类中的方法 TShttp.getpipei 。方法中用到的<em>对象</em>idhttp1和 rex 是不是应该在方法中就<em>释放</em>掉??rnrn还是程序中 TShttp 的实例<em>释放</em>时就都<em>释放</em>掉了?rnrn应该怎么操作才是正确的哦
对了 关于 释放conn对象
在 <em>释放</em> conn <em>对象</em>时 直接 set conn=nothing 而不 conn.close 可以吗?rnrnconn 是定义的页面级 变量 rn(问题的起因,同事的代码中没有 close 而直接 nothing)rnrn我觉得 conn 在 页面执行完就 over了 但 连接没有<em>释放</em> 是不是 只要 close就可以rnrn不知道 其垃圾是怎样回收的 conn<em>对象</em> 是否一定要 手动设成nothing以便回收,其实页面over了 这个引用无效 自然也要回收了。rnrn敬请不吝赐教
释放对象
我写了一个带FORM的DLL,放到主程序下面被调用,当关闭主程序后,资源管理器中主程序仍然在运行,需要在资源管理器里再将主程序关闭,为什么会出现这种情况,是因为我DLL里有<em>对象</em>没有<em>释放</em>掉?rnrn 我是这么写的:rnrn frmTest := nil;rn tryrn frmTest := TfrmTest .Create(nil);rn frmTest.ShowModal;rn finallyrn FreeAndNil(frmTest);rn end;rn
关于using()后释放对象
如果我是一个自定义的类,我想让它在using 之后自动调用一个函数来销毁(不是析构函数)rn这个销毁类似于 using(sqlcon) 用完后自动断开连接一样rnrn需要继承什么接口吗?
关于嵌入ole对象释放
我在RTF域中引入一个EXCEL文件,rn用完后我想<em>释放</em>它,rnset handleV = uidoc.getobject("OLEObject")rn....rnset tmpHandleV = handleV.worksheets(3)rn....rn'再传入函数的worksheetrncall worksheet.activaternset range = worksheet.UsedRangerntemp= worksheet.range("A2").valuern.....rnrn'回到主程序后想<em>释放</em>句柄rn用什么方法呢?rnrn还有,我对notes中的ole那些类(在编程窗口里的)看不懂,请高手指点指点。谢谢
文章热词 Solidity属性与行为访问对象 C# C#学习 C#培训 C#视频教程
相关热词 c++ 无法访问已释放的对象 c#如何释放对象 c#释放自身对象 c# invoke 关于python培训班 教程都python2怎么办
我们是很有底线的