Grain<TGrainState> 類別

定義

具有已宣告永續性狀態之 Grain 的基類。

public class Grain<TGrainState> : Orleans.Grain where TGrainState : new()
public class Grain<TGrainState> : Orleans.Grain
type Grain<'GrainState (requires 'GrainState : (new : unit -> 'GrainState))> = class
    inherit Grain
type Grain<'GrainState> = class
    inherit Grain
Public Class Grain(Of TGrainState)
Inherits Grain

類型參數

TGrainState

永續性狀態對象的類別

繼承
Grain<TGrainState>

建構函式

Grain<TGrainState>()

初始化 Grain<TGrainState> 類別的新執行個體。

Grain<TGrainState>(IGrainIdentity, IGrainRuntime, IStorage<TGrainState>)

粒度實作者不需要公開此建構函式,但可以選擇這麼做。 此建構函式特別適用於單元測試,其中測試程序代碼可以建立 Grain,並以測試雙精度 (模擬/stubs) 取代 IGrainIdentity、IGrainRuntime 和 State。

Grain<TGrainState>(IGrainIdentity, IGrainRuntime, TGrainState, IStorage)

粒度實作者不需要公開此建構函式,但可以選擇這麼做。 此建構函式特別適用於單元測試,其中測試程序代碼可以建立 Grain,並以測試雙精度 (模擬/stubs) 取代 IGrainIdentity、IGrainRuntime 和 State。

Grain<TGrainState>(IStorage<TGrainState>)

初始化 Grain<TGrainState> 類別的新執行個體。

屬性

GrainFactory

取得對象,這個物件可用來存取其他粒度。 如果此粒度與運行時間沒有關聯,則為 Null,例如直接針對單元測試建立時。

(繼承來源 Grain)
GrainReference

具有已宣告永續性狀態之 Grain 的基類。

(繼承來源 Grain)
IdentityString

粒度的 SiloIdentity 字串表示,包括類型和主鍵。

(繼承來源 Grain)
RuntimeIdentity

目前接收器的唯一標識碼。 此字串沒有語意內容,但對記錄可能很有用。

(繼承來源 Grain)
ServiceProvider

取得由運行時間管理的 IServiceProvider。 如果此粒度與運行時間沒有關聯,則為 Null,例如直接針對單元測試建立時。

(繼承來源 Grain)
State

取得或設定粒度狀態。

方法

ClearStateAsync()

從備份存放區清除目前的粒度狀態數據。

DeactivateOnIdle()

完成目前的粒度方法呼叫之後,停用此粒度啟用。 此呼叫會將目前粒度的啟用標示為停用,並在目前方法的結尾移除。 下一次呼叫此粒度會導致使用不同的啟用,這通常表示運行時間會自動建立新的啟用。

(繼承來源 Grain)
DelayDeactivation(TimeSpan)

延遲停用此啟用至少在指定的期間內。 正 timeSpan 值表示「防止該時間範圍的此啟用 GC」。 負 timeSpan 值表示「取消先前的 DelayDeactivation 呼叫設定,並根據一般啟用垃圾收集設定進行這項啟用」。 DeactivateOnIdle 方法會復原/覆寫任何目前的「保持運作」設定,讓此粒度立即可供停用。

(繼承來源 Grain)
GetLogger()

傳回這個粒度程式代碼可用於追蹤的記錄器物件。 記錄器的名稱會衍生自粒度類別名稱。

(繼承來源 Grain)
GetLogger(String)

傳回這個粒度程式代碼可用於追蹤的記錄器物件。

(繼承來源 Grain)
GetReminder(String)

傳回先前註冊的提醒。

(繼承來源 Grain)
GetReminders()

傳回由粒紋註冊的所有提醒清單。

(繼承來源 Grain)
GetStreamProvider(String)

具有已宣告永續性狀態之 Grain 的基類。

(繼承來源 Grain)
GetStreamProviders()

具有已宣告永續性狀態之 Grain 的基類。

(繼承來源 Grain)
MigrateOnIdle()

開始嘗試將此實例移轉至另一個位置。 移轉會擷取目前的 RequestContext,使其可供啟用的放置主管使用,以便在選取新位置時加以考慮。 當沒有任何要求正在執行時,移轉將會以異步方式發生,而且如果啟用的放置 Director 未選取替代位置,則不會發生。

(繼承來源 Grain)
OnActivateAsync()

這個方法會在啟動粒度的程序結束時呼叫。 它會在將任何訊息分派至粒度之前呼叫。 針對宣告永續性狀態的粒度,在填入 State 屬性之後會呼叫這個方法。

(繼承來源 Grain)
OnActivateAsync(CancellationToken)

這個方法會在啟動粒度的程序結束時呼叫。 它會在將任何訊息分派至粒度之前呼叫。 針對宣告永續性狀態的粒度,在填入 State 屬性之後會呼叫這個方法。

(繼承來源 Grain)
OnDeactivateAsync()

這個方法會在停用粒度的程序開頭呼叫。

(繼承來源 Grain)
OnDeactivateAsync(DeactivationReason, CancellationToken)

這個方法會在停用粒度的程序開頭呼叫。

(繼承來源 Grain)
Participate(IGrainLifecycle)

具有已宣告永續性狀態之 Grain 的基類。

Participate(IGrainLifecycle)

具有已宣告永續性狀態之 Grain 的基類。

(繼承來源 Grain)
ReadStateAsync()

從備份存放區讀取粒度狀態,並 State更新 。

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

註冊持續性可靠提醒,以將一般通知傳送 (提醒) 到粒紋。 粒度必須實作 Orleans.IRemindable 介面,而且此粒紋的提醒會傳送至 ReceiveReminder 回呼方法。 如果定時器引發時停用目前的粒紋,將會建立此粒紋的新啟用,以接收此提醒。 如果已有同名的現有提醒存在,該提醒將會以這個新提醒覆寫。 即使此粒度有多個啟用,也一律會收到提醒。

(繼承來源 Grain)
RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)

註冊定時器,以將定期回呼傳送至此粒度。

(繼承來源 Grain)
UnregisterReminder(IGrainReminder)

取消註冊先前註冊的提醒。

(繼承來源 Grain)
WriteStateAsync()

將目前的粒度狀態數據寫入備份儲存區。

明確介面實作

IGrainBase.GrainContext

具有已宣告永續性狀態之 Grain 的基類。

(繼承來源 Grain)

擴充方法

DeactivateOnIdle(IGrainBase)

完成目前的粒度方法呼叫之後,請停用此粒度啟用。 此呼叫會將目前粒度的啟用標示為停用,並在目前方法的結尾移除。 下一次呼叫此粒度會導致使用不同的啟用,這通常表示運行時間會自動建立新的啟用。

MigrateOnIdle(IGrainBase)

開始嘗試將此實例移轉至另一個位置。 移轉會擷取目前的 RequestContext,使其可供啟用的放置主管使用,以便在選取新位置時加以考慮。 當沒有任何要求正在執行時,移轉將會以異步方式發生,而且如果啟用的放置 Director 未選取替代位置,則不會發生。

AsReference(IAddressable, Type)

傳回所提供粒度的具型別參考。

AsReference<TGrainInterface>(IAddressable)

傳回所提供粒度的具型別參考。

BindGrainReference(IAddressable, IGrainFactory)

將粒度參考系結至提供的 IGrainFactory

Cast(IAddressable, Type)

傳回所提供粒度的具型別參考。

Cast<TGrainInterface>(IAddressable)

傳回所提供粒度的具型別參考。

GetGrainId(IAddressable)

傳回對應至所提供粒紋的粒度標識碼。

GetPrimaryKey(IAddressable)

Guid 回粒度主鍵的表示法。

GetPrimaryKey(IAddressable, String)

Guid 回粒度主鍵的表示法。

GetPrimaryKeyLong(IAddressable)

long 回粒度主鍵的表示法。

GetPrimaryKeyLong(IAddressable, String)

long 回粒度主鍵的表示法。

GetPrimaryKeyString(IAddressable)

string 回粒度的主鍵。

IsPrimaryKeyBasedOnLong(IAddressable)

傳回主鍵的一部分是否為類型 long

GetReminder(Grain, String)

傳回先前註冊的提醒。

GetReminder(IGrainBase, String)

傳回先前註冊的提醒。

GetReminders(Grain)

傳回由粒紋註冊的所有提醒清單。

GetReminders(IGrainBase)

傳回由粒紋註冊的所有提醒清單。

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

註冊持續性可靠提醒,以將一般通知傳送 (提醒) 到粒紋。 粒度必須實作 Orleans.IRemindable 介面,而且此粒紋的提醒會傳送至 ReceiveReminder 回呼方法。 如果定時器引發時停用目前的粒紋,將會建立此粒紋的新啟用,以接收此提醒。 如果已有同名的現有提醒存在,該提醒將會以這個新提醒覆寫。 即使此粒度有多個啟用,也一律會收到提醒。

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

註冊持續性可靠提醒,以將一般通知傳送 (提醒) 到粒紋。 粒度必須實作 Orleans.IRemindable 介面,而且此粒紋的提醒會傳送至 ReceiveReminder 回呼方法。 如果定時器引發時停用目前的粒紋,將會建立此粒紋的新啟用,以接收此提醒。 如果已有同名的現有提醒存在,該提醒將會以這個新提醒覆寫。 即使此粒度有多個啟用,也一律會收到提醒。

UnregisterReminder(Grain, IGrainReminder)

取消註冊先前註冊的提醒。

UnregisterReminder(IGrainBase, IGrainReminder)

取消註冊先前註冊的提醒。

GetStreamProvider(Grain, String)

取得具有指定 name之的數據流提供者。

GetStreamProvider(IGrainBase, String)

取得具有指定 name之的數據流提供者。

GetLogger(Grain)

傳回這個粒度程式代碼可用於追蹤的記錄器物件。 記錄器的名稱會衍生自粒度類別名稱。

GetLogger(Grain, String)

傳回這個粒度程式代碼可用於追蹤的記錄器物件。

GetGrainStorage(Grain, IServiceProvider)

取得與粒度類型相關聯的儲存提供者。

適用於