-----在使用队列时如何实现“等待”队列新元素的加入?----- 我有两个方法(函数),一个是“生产者”,往队列里不定时插入新元素;另一个则是消费者,取出队列中最旧的元素进行“消费”.....在某个情况下,消费者需要某个特定元素才能继续消费下去,这个特定元素没出现前必须“等待”,我要问的就是——在.NET下如何用代码实现这个“等待”? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 >>> 在.NET下如何用代码实现这个“等待”不太清楚你的意思,如果是要线程暂停,可以:bool pause = true;while(pause){Thread.Sleep(1000);} 重载队列的入队操件,然后每次入队时激发一个事件,应该可以吧Class Myqueue Inherits System.Collections.Queue Public Event AddNew(ByVal obj As Object) Overloads Sub Enqueue(ByVal obj As Object) Me.Enqueue(obj) RaiseEvent AddNew(obj) End SubEnd Class 以前翻的一片文章就是按这个模式进行设计来多线程加载数据,并实现排队处理工作项。中间需要考虑队列为空或满的情况。http://blog.csdn.net/zhzuo/archive/2004/06/10/22037.aspx 不好意思,举例解释一下队列Qfunc1 //写队列{ ...... for(int i=0;i<strIn.Length;i++) { Q.Enqueue(strIn[i]); //将字符串写进队列,例如“ABCDEFGH...” } ......}func2 //要从队列中获得一个字符串如“ABCDEFGH”,但队列中可能只有“ABCD”, //“EFGH”还没有加进....{ string str1 += Q.Dequeue; if(q.count==0 & str1不是"ABCDEFG") { //等待“EFGH”加进队列 <-------------我想实现的步骤 ...... } fun2{ string str1=String.Empty(); while(true) { if(str1=="ABCDEFG") break; if(q.count>0) str1+=q.dequeue(); }} 关于做手机网站的问题! 急!winform datagridview表头怎么增加复选框,点击表头的复选框,下面行的复选全选或全未选 SQL数据库查询指定日期范围内数据 请问一个关于层的问题 c#.net函数应用? 用C#编写控制机器人移动=A= WPF,请教下数据绑定时的依赖项属性优先级 大虾请帮帮我!!关于时间转换问题。 命名空间的问题(就10分了) 怎么转换时间?????? 请问下面的方法怎么实现 javascript带小数相乘33.33*50.33=1677.4988999999998应该等于1677.4989,请问各位有什么办法解决,谢谢!
不太清楚你的意思,如果是要线程暂停,可以:
bool pause = true;
while(pause)
{
Thread.Sleep(1000);
}
Class Myqueue
Inherits System.Collections.Queue
Public Event AddNew(ByVal obj As Object)
Overloads Sub Enqueue(ByVal obj As Object)
Me.Enqueue(obj)
RaiseEvent AddNew(obj)
End Sub
End Class
中间需要考虑队列为空或满的情况。
http://blog.csdn.net/zhzuo/archive/2004/06/10/22037.aspx
{
......
for(int i=0;i<strIn.Length;i++)
{
Q.Enqueue(strIn[i]); //将字符串写进队列,例如“ABCDEFGH...”
}
......
}func2 //要从队列中获得一个字符串如“ABCDEFGH”,但队列中可能只有“ABCD”,
//“EFGH”还没有加进....
{
string str1 += Q.Dequeue;
if(q.count==0 & str1不是"ABCDEFG")
{
//等待“EFGH”加进队列 <-------------我想实现的步骤
......
}
{
string str1=String.Empty();
while(true)
{
if(str1=="ABCDEFG")
break;
if(q.count>0)
str1+=q.dequeue();
}
}