1

我在我的 C# Web API 中使用并发队列。我想处理在正常关机的情况下,我应该能够清空我的队列,处理它并将其处理掉。

下面是我的代码片段,我在其中尝试处理最后一条消息并将其写入文件,但是当我手动停止 IIS 应用程序池时,我无法调试或创建处理文件。

有什么建议么?

 public static void SendToDisposeFile()
    {
        File.AppendAllText(Path.Combine(Path.Combine(@"D:\", "Input"), "dispose-input-file-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt"), "Disposed text" + Environment.NewLine);          

    }
 #region IDisposable implementation

    ~RequestQueue()
    {
        Dispose(false);
    }

    public void Dispose()
    {            
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (_disposed)
            return;

        _disposed = true;

        if (!disposing)
            return;
        if(_queue.Count > 0)
            SendToDisposeFile();           
      
    }

    #endregion
4

0 回答 0