語言

AsyncCrossProcessMutex 類別

定義

一個可以非同步輸入的互斥體。

public class AsyncCrossProcessMutex : IDisposable
type AsyncCrossProcessMutex = class
    interface IDisposable
Public Class AsyncCrossProcessMutex
Implements IDisposable
繼承
AsyncCrossProcessMutex
實作

範例

使用 AsyncCrossProcessMutex mutex = new(「Some-Unique Name」);使用 (waitit mutex.EnterAsync()) { // 程式碼不得與其他由相同名稱互斥體保護的其他執行緒或程序平行執行。 }

備註

此類別利用作業系統的互斥節同步原件,該原語本質上是執行緒親和,且需要同步阻塞擁有該互斥節的執行緒。 這使得原生的互斥節不適合用於非同步方法,因為進入該互斥體的執行緒可能與離開該節點的執行緒不同。 此類別透過使用專用私有執行緒輸入與釋放互斥座來解決此問題,但除此之外,擁有者仍能執行非同步程式碼、切換執行緒等。

建構函式

名稱 Description
AsyncCrossProcessMutex(String)

初始化 AsyncCrossProcessMutex 類別的新執行個體。

屬性

名稱 Description
Name

會取得 mutex 的名稱。

方法

名稱 Description
Dispose()

處理掉底層的原生物件。

EnterAsync()

非同步取得互斥體。

EnterAsync(TimeSpan)

非同步取得互斥體。

TryEnterAsync(TimeSpan)

非同步取得互斥體,允許逾時且不拋出例外。

適用於