AsyncCrossProcessMutex 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個可以非同步輸入的互斥體。
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) |
非同步取得互斥體,允許逾時且不拋出例外。 |