小编Edg*_*tat的帖子

析构函数永远不会被调用

我有一个类Class,Thread它在它的构造函数中创建.该线程运行一个while(true)循环,从a读取非关键数据NetStream.线程将被析构函数中止:

~Class()
{
 _thread.Abort();
 _thread = null;
}
Run Code Online (Sandbox Code Playgroud)

当程序想要结束对Class实例 的使用时ClassInstance,它会调用:

ClassInstance = null;
GC.Collect;
Run Code Online (Sandbox Code Playgroud)

我认为这意味着那时候~Class()会自动调用 - 但事实并非如此.

该线程即使在Application.Exit()返回之后也会继续运行Main().

c# multithreading

15
推荐指数
2
解决办法
1万
查看次数

谁有责任为Thread句柄调用CloseHandle()

我有一个类Class,其中有一个成员属性HANDLE handle到一个线程(我们可以假设它NULL在那时设置).在某些时候,一个方法可以Class调度它自己的一个方法Class::threaded()(使用另一个类本身外部的函数,但这并不重要)CreateThread().然后,调用线程可以继续执行其他功能Class.

因为CloseHandle()必须要求HANDLE返回来自CreateThread() ,我想知道是否Class::threaded()在它返回之前调用它将是一个不错的解决方案.

c++ winapi multithreading window-handles

4
推荐指数
2
解决办法
2812
查看次数

使.NET TextBox工作FIFO样式

我有一个用C#编写的win GUI应用程序,其中有一个TextBox我写日志的组件.在某些时候,它太过负载,整个应用程序开始动摇.我想建立一个有效的机制,使其成为一个FIFO,意思是 - 使其固定大小并自动删除最旧的内容.

这样做有什么.net/c#功能吗?否则,这样做的正确方法是什么?

更新:我还有其他类型的文本数据,而不仅仅是日志.因此,ListBox对我来说,这不是一个合适的解决方案.

.net c# user-interface textbox

3
推荐指数
2
解决办法
3828
查看次数

c#中的多态返回类型

我有一个目前原型为:

List<object> get_object_list(byte object_type, object_void_delegate get_one_specific_type_object)
{}
Run Code Online (Sandbox Code Playgroud)

由于获取元素列表的逻辑对于我所拥有的所有类型都是相同的,但是获取一个元素的逻辑从一种类型到另一种类型是不同的,我希望有一个函数来获取所有类型的列表(get_object_list) ()).

例如,Car我会打电话给:

List<Car> cars_list = (List<Car>) get_object_list (CAR , get_one_car);
Run Code Online (Sandbox Code Playgroud)

现在的问题是我有无效转换的c编译错误:无法转换List<object>List<Car>

无论如何要解决它吗?

更新: 一些澄清.get_object_list()位于客户端组件中,它从网络资源(aNetStream)获取数据. object_type正被发送到服务器,让它知道所需的列表类型.服务器将回复Uint32 number_of_items描述可用元素的数量.然后,get_one_specific_type_object()将被称为number_of_items时代.

c#

2
推荐指数
1
解决办法
138
查看次数