クラストランザクション
Realmを安全に読み取りと書込みするためのスコープを提供します。 BeginWrite()経由で明示的に使用する必要があります。
実装
Namespace: Realms
組み立て: Realm.dll
構文
public class Transaction : IDisposable
コメント
プロパティ
| このページを編集 ソースを表示状態
このトランザクションの状態を取得します。
宣言
public TransactionState State { get; }
プロパティ値
タイプ | 説明 |
---|---|
TransactionState | トランザクションの状態です。 |
メソッド
| このページを編集 ソースを表示Commit()
Realm への変更を保存するには、 を使用します。 トランザクションがusing
ブロックで宣言されている場合は、そのブロックの終了前に使用する必要があります。
宣言
public void Commit()
CommitAsync(CancelToken)
Realm への変更を保存するには、 を使用します。 トランザクションがusing
ブロックで宣言されている場合は、そのブロックの終了前に使用する必要があります。 変更がディスクに効果的に書き込まれると完了します。
宣言
public Task CommitAsync(CancellationToken cancellationToken = default)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
CancelToken | completedToken | 返されたタスクの待機を停止するための任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク | コミットされた変更がディスクに効果的に書き込まれたときに完了する待機可能なタスク。 |
コメント
返されたタスクをキャンセルしてもディスクへの書込み (write) は妨げられませんが、 TaskCanceledExceptionによってタスクはすぐに解決されます。 実際、コミット アクションは停止することができず、バックグラウンドで完了するまで実行され続けます。
このアクションをキャンセルするユースケースは、データが保存されていることを示すポップアップをユーザーに表示することです。 しかし、一定時間後にこのようなポップアップを自動的に閉じたいと思います。 または、ユーザーがそのポップアップを手動で無視できるようにすることもできます。
Dispose()
明示的にコミットされていない場合は、既存のスコープ上のトランザクションを自動的にロールバックします。
宣言
public void Dispose()
Rollback()
トランザクション内の変更を元に戻すには、明示的に使用します。それ以外の場合は、ブロックを終了することによって自動的に呼び出されます。
宣言
public void Rollback()