ASP.NET的非锁定睡眠/等待/延迟功能

时间:2011-04-27 12:49:38

标签: asp.net vb.net

我正在编写一个与外部应用程序连接的ASP.NET类。 Web服务器和此应用程序之间的事务流如下:

  1. 我的对象将文件写入目录。
  2. 外部应用程序检测到此文件并对其进行处理。这可能需要1-5秒。
  3. 外部应用程序将响应文件写入同一目录。
  4. 我的对象检测到响应文件并解析结果。
  5. 外部应用程序处理文件所需的1-5秒是我的问题。等待文件的最简单方法似乎是这样的:

    Do While Not File.Exists(f)
        Thread.Sleep(500)
    Loop
    

    当然,Thread.Sleep()完全锁定了我网站的其余部分,直到外部应用程序处理该文件。显然,这不是一个可行的解决方案。

    如何有效地“等待”处理我的文件而不锁定我网站的其余部分?

1 个答案:

答案 0 :(得分:2)

使用FileSystemWatcher - 创建文件时,它将触发您可以订阅的事件。