zoukankan      html  css  js  c++  java
  • 黄聪:队列Queue笔记

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace ConsoleApplication2
    {
    class Program
    {
    static void Main(string[] args)
    {
    DocumentManager dm
    = new DocumentManager();
    ProcessDocument.Start(dm);

    for (int i = 0; i < 1000; i++)
    {
    Document doc
    = new Document("Doc " + i, "Content");
    dm.AddDocument(doc);
    Console.WriteLine(
    "Added document Doc "+ i);
    Thread.Sleep(
    new Random().Next(20));
    }
    }
    }


    public class DocumentManager
    {
    private readonly Queue<Document> documentQueue = new Queue<Document>();

    public void AddDocument(Document doc)
    {
    lock (this)
    {
    documentQueue.Enqueue(doc);
    }
    }

    public Document GetDocument()
    {
    Document doc
    = null;
    lock (this)
    {
    doc
    = documentQueue.Dequeue();
    }
    return doc;
    }

    public bool IsDocumentAvailable
    {
    get {
    return documentQueue.Count > 0;
    }
    }
    }

    public class ProcessDocument
    {
    private DocumentManager documentManager;

    protected ProcessDocument(DocumentManager dm)
    {
    this.documentManager = dm;
    }

    public static void Start(DocumentManager dm)
    {
    new Thread(new ProcessDocument(dm).Run).Start();
    }

    protected void Run()
    {
    while (true)
    {
    if (documentManager.IsDocumentAvailable)
    {
    Document doc
    = documentManager.GetDocument();
    Console.WriteLine(
    "Processing document {0}",doc.Title);
    }
    Thread.Sleep(
    new Random().Next(20));
    }
    }
    }
    }

  • 相关阅读:
    UI: 多窗口
    UI: 标题栏
    控件 UI: 字体的自动继承的特性, Style, ControlTemplate
    控件 UI: VisualState, VisualStateManager, 控件的默认 UI
    控件 UI: StateTrigger
    atoi、stoi、strtoi区别
    python下载IGS观测数据
    稳健估计
    间接平差程序实现
    android中的文件操作详解以及内部存储和外部存储(转载)
  • 原文地址:https://www.cnblogs.com/huangcong/p/1734500.html
Copyright © 2011-2022 走看看