c# 怎样将数据写入内存同时读取出来

yikunmaodun 2010-10-15 10:38:54
我在一个类中运行某个程序,并不断输出信息,想将这些信息存到缓冲区然后在另一个类中读取该缓冲区中的内容,请问各位高手该怎么办?
...全文
522 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghost5216 2010-10-18
  • 打赏
  • 举报
回复
看看进程间通讯的方法 有好几种
bloodish 2010-10-15
  • 打赏
  • 举报
回复
用队列,实际应用没这么简单,应为队列大小不可能无限增加.
只是一个示例

public static class MessgePool
{
static Queue<string> msgs;
static object syncObj;

static MessgePool()
{
msgs = new Queue<string>();
syncObj = new object();
}

public static void WriteMessage(string msg)
{
lock (syncObj)
{
msgs.Enqueue(msg);
}
}

public static bool ReadMessage(ref string msg)
{
lock (syncObj)
{
if(msgs.Count > 0)
{
msg = msgs.Dequeue();
return true;
}
else
{
return false;
}
}
}
}
ghost5216 2010-10-15
  • 打赏
  • 举报
回复
你那个外部程序是你自己写的吗?
如果是 那这是两个进程通信的问题,可以用内存映射文件。外部程序和主程序都访问这个内存映射文件就可以了。
yikunmaodun 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cysong168 的回复:]

建立一个静态类。整个程序都可以访问。
[/Quote]
是这样的
yikunmaodun 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tanxd137 的回复:]

开启2根线程去做。 一根专门拿来存储信息 一根专门拿来读取。 这样就能同时运行了
[/Quote]
对,我是在另一个线程运行的外部程序,在主程序读取外部程序的输出的,但是不知道该怎样将这些信息存到内存,同时还要读取
tanxd137 2010-10-15
  • 打赏
  • 举报
回复
开启2根线程去做。 一根专门拿来存储信息 一根专门拿来读取。 这样就能同时运行了
CYSONG168 2010-10-15
  • 打赏
  • 举报
回复
建立一个静态类。整个程序都可以访问。
CYSONG168 2010-10-15
  • 打赏
  • 举报
回复
我在一个类中运行某个程序,并不断输出信息,想将这些信息存到缓冲区然后在另一个类中读取该缓冲区中的内容,请问各位高手该怎么办?

1。 ‘某个程序’是另外的一个程序?
2。‘哪个程序不断输出信息?
3。 ‘另一个类中读取该缓冲区’,这个类和‘一个类’是属于不同的程序(进程)?
yikunmaodun 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ghost5216 的回复:]

你那个外部程序是你自己写的吗?
如果是 那这是两个进程通信的问题,可以用内存映射文件。外部程序和主程序都访问这个内存映射文件就可以了。
[/Quote]
对 我也想到应该是两个进程间的通信,内存映射没有接触过,还请高人指教

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧