问题标签 [disposing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5232 浏览

c# - C# 如何防止 TcpClient 对象在我使用 new 关键字创建的不同线程中进行处理?

所以我试图用 C# 为我的服务器创建一个客户端,它接受消息作为命令,这样我就可以远程控制客户端。我的 masterServer.Connect 一直在加载,几乎每次我关闭我的应用程序时,我都必须等待 10 秒才能完全停止。我已经尽一切努力阻止这...没有运气。所以我已经放弃了,现在要解决另一个问题,我正在使用 masterServer = new TcpClient() 这似乎在 CreateConnection() 线程中工作得很好。但是当线程完成时,我在某处调用 SendClientInfo() 并导致此运行时错误:

无法访问已释放的对象 System.Net.Sockets.TcpClient

因此,我已尽力想办法在对象处置或其他任何事情之前保存对象,但我就是不知道该怎么做。所以这是我的问题:

  1. 如何防止 mainServer = new TcpClient() 处理,以便我可以在我的 SendClientInfo() 上使用它?
  2. 任何人都可以重做我的 CreateConnection() 方法,以便我可以看到如何正确地做到这一点吗?我已经重写了那东西一千次,但它看起来仍然非常错误,如果 masterServer.connect() 还没有连接到服务器,它需要永远完成。
  3. 您可以在此处查看任何其他更改或修复。我已经进进出出好几个小时了,只是想通过阅读一百个教程来教自己如何使用套接字。任何你告诉我我做错了的事情,我都会永远记住并在下一次正确地做。

如果您需要更多信息,请告诉我......我真的很感激。

0 投票
1 回答
109 浏览

asp.net - 当用户离开请求时,我可以控制清洁项目吗?

我有一个允许上传多个文件的页面,这些文件不断上传,即有许多 FileUpload 控件和每个靠近它们的提交按钮,它会立即上传。

我希望,一旦用户离开页面并转到另一个页面而不保存主容器(例如,“项目”=产品/注释/文档/这些文件附加到什么),上传的文件应该从服务器中删除.

换句话说:我怎么知道用户不打算回来(即他关闭了浏览器等)

0 投票
2 回答
5100 浏览

button - 通过单击内部 JPanel 来处理 JFrame

我试图通过单击一个按钮来处理我的 JFrame,该按钮位于一个 JPanel 上,该 JPanel 位于我想要关闭的 JFrame 上。

我试图在 JFrame 类上创建一个静态方法,但当然我的 IDE 告诉我这不会发生。

有人想解决办法吗?

谢谢!

0 投票
2 回答
235 浏览

.net - 我是否必须手动删除每个实例的所有事件处理程序?

考虑这个类:

我是否必须在销毁此项目时手动删除处理程序?这不是由 GC 或托管代码编译器的其他工具完成的吗?

0 投票
4 回答
2342 浏览

.net - 将 IDisposable 作为参数传递

将 IDisposable 作为参数传递给方法并将其放置在该方法中是否是一种好习惯。当您必须使用多个线程时,这是不可避免的。好吧,最佳实践说所有者(调用者)应该处理它。

例如

如果所有者(创建线程)不再存在怎么办?例如

在这里你会发现问题...

0 投票
1 回答
127 浏览

winforms - 如果 Form1 打开 Form2 并注册 Form2.TextChanged,如果 Form2 正在关闭,我是否需要从 Form1 中取消注册 Form2.TextChanged?

这是另一个关于从 .NET 中妥善处理对象的问题。在阅读了很多关于处置最佳实践(和人们的意见)的不同文章之后,我无法得到那个答案。我有 2 个表格,Form1 和 Form2。

表格1

表格2

在 Form2 中调用 Close() 时,Form2 应该有 is dispose() 方法调用,因为它是通过调用 is Show() 方法打开的,但是由于 Form1 已注册 TextChanged 事件或 Form2,这是否会阻止 Form2 被释放或生成GC处理的过程效率低吗?

提前致谢

0 投票
1 回答
577 浏览

wpf - 在 WPF 自定义控件中释放托管资源

我正在为第三方库编写一些 WPF 自定义控件。例如,我ComboBox用一些依赖属性增强了标准。主要问题是我的控件有一些IDisposable对象作为私有实例,我想处置这些对象。我的控件的结构是这样的:

当控件被 GC'ed 时,如何确保该对象被释放,最好的方法是什么?

提前致谢。

PS:我尝试了该Finalizer方法,但我认为这不是一个干净且好的解决方案,并且与Unloaded控件的事件有关(当主题更改时也会引发)。

0 投票
5 回答
109 浏览

c# - 在任何情况下,我们必须在 C# 中将变量设置为空?

如果变量在当前范围内是本地的,是否有任何理由在它结束之前将它们设置为 null ?

0 投票
3 回答
3753 浏览

c# - 匿名事件处理程序和处置

我有一个关于匿名事件处理程序的简短问题:

这是我拥有的代码

上面的代码是否正常,或者是否应该重写代码以删除 Disposed Event Handler?像这样的东西:

0 投票
6 回答
1735 浏览

c# - 使用多个 using 语句来处理 DataSet 和 DataTables

你能解释一下这里发生了什么吗?