我有一个类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().
我有一个类Class,其中有一个成员属性HANDLE handle到一个线程(我们可以假设它NULL在那时设置).在某些时候,一个方法可以Class调度它自己的一个方法Class::threaded()(使用另一个类本身外部的函数,但这并不重要)CreateThread().然后,调用线程可以继续执行其他功能Class.
因为CloseHandle()必须要求HANDLE返回来自CreateThread() ,我想知道是否Class::threaded()在它返回之前调用它将是一个不错的解决方案.
我有一个用C#编写的win GUI应用程序,其中有一个TextBox我写日志的组件.在某些时候,它太过负载,整个应用程序开始动摇.我想建立一个有效的机制,使其成为一个FIFO,意思是 - 使其固定大小并自动删除最旧的内容.
这样做有什么.net/c#功能吗?否则,这样做的正确方法是什么?
更新:我还有其他类型的文本数据,而不仅仅是日志.因此,ListBox对我来说,这不是一个合适的解决方案.
我有一个目前原型为:
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时代.