多线程应用程序中的字典(内存管理?)

皮拉耶耶夫(PilawyerDev)

我有一个字典,它是Dictionary<int, RSendPacket>_Packets,有两个主线程。线程#1使用此功能添加数据包

public void EnqueueOutgoingData(int id, byte[] data)
{
    RSendPacket packet = new RSendPacket(data);
    _Packets.Add(id, packet);
}

像这样读取线程#2并通过套接字发送数据包

private void _Process(RSendPacket packet)
{
    foreach (KeyValuePair<int, RSendPacket> o in _Packets)
    {
        //Socket send (o.Value >> That's RSendPacket class)
    }
}

在这一点上,我遇到了一个错误。我要添加“ asdf”,但它的携带形式是“►o”。我认为这是一个线程/内存错误,但由于我不知道如何而无法解决!有人可以帮我吗?(我可以使用指针和内存管理在C ++中实现一个系统,这应该是内存管理问题-由我的错误C#引起)

EDIT1:是的,没有线程安全的实现,但是我已经用'lock()'尝试过了,但是没有用!

EDIT2:哦,另一个重要的编辑。我在Unity中使用C#2.0。所以解决方案应该是C#2.0(单声道)代码:/

皮拉耶耶夫(PilawyerDev)

真正的解决方案(我已经尝试过并且可行)是l3arnon的答案,但是我将在C#2.0中实现该系统,并且已经使用Monitor这种方法一样实现了它

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多线程应用程序中的QTimer

来自分类Dev

ncurses在多线程应用程序中

来自分类Dev

字典在多线程应用程序中的迭代过程中改变了大小

来自分类Dev

多线程控制台应用程序中的EF核心内存泄漏

来自分类Dev

如何管理多线程C#应用程序

来自分类Dev

如何管理 Python Tkinter 应用程序多线程

来自分类Dev

如何在多线程应用程序中存储线程

来自分类Dev

Android应用程序中的内存管理

来自分类Dev

Android应用程序中的内存管理

来自分类Dev

在多线程应用程序中划分大文件?

来自分类Dev

在多线程c#应用程序中嵌入Python

来自分类Dev

多线程应用程序中的死锁检测

来自分类Dev

多线程在Web应用程序中的作用

来自分类Dev

如何在IntelliJ中调试多线程应用程序?

来自分类Dev

多线程应用程序中的System.ObjectDisposedException

来自分类Dev

多线程应用程序中的Apache HttpClient和HttpConnection

来自分类Dev

ZeroMQ处理多线程应用程序中的中断

来自分类Dev

在多线程应用程序中锁定和解锁

来自分类Dev

多线程应用程序中的DLL和类

来自分类Dev

多线程应用程序中的日志队列

来自分类Dev

多线程应用程序中的静态方法

来自分类Dev

多线程应用程序中的多核JIT

来自分类Dev

在多线程应用程序中安全使用迭代器

来自分类Dev

Javascript应用程序中的多线程错觉

来自分类Dev

表单应用程序中的意外多线程

来自分类Dev

多线程应用程序中的原子布尔用法

来自分类Dev

在多线程应用程序中在哪里设置锁?

来自分类Dev

多线程Windows Phone应用程序

来自分类Dev

WinAPI多线程应用程序