SyncRoot Property (DbDataTable)
Gets an object that can be used to synchronize access to the
System.Data.DataTable.Rows collection.
'Declaration
Public ReadOnly Property SyncRoot As Object
Property Value
A synchronization object.
The following example demonstrates how to use the
SyncRoot property.
static void UseDataTable(DbDataTable myDataTable, DbConnection myConnection) {
myDataTable.Connection = myConnection;
myDataTable.SelectCommand = myConnection.CreateCommand();
myDataTable.SelectCommand.CommandText = "SELECT * FROM Dept";
myDataTable.NonBlocking = true;
myDataTable.Active = true;
while ( true ) {
Thread.Sleep(100);
bool isFetching = !System.Threading.Monitor.TryEnter(myDataTable.SyncRoot, 0);
if (!isFetching)
System.Threading.Monitor.Exit(myDataTable.SyncRoot);
else
break;
Console.Write("Fetch in process");
}
Console.Write("All records are fetched");
}
Private Shared Sub UseDataTable(ByVal myDataTable As DbDataTable, ByVal myConnection As DbConnection)
myDataTable.Connection = myConnection
myDataTable.SelectCommand = myConnection.CreateCommand
myDataTable.SelectCommand.CommandText = "SELECT * FROM Dept"
myDataTable.NonBlocking = True
myDataTable.Active = True
Do While True
Thread.Sleep(100)
If Not Monitor.TryEnter(myDataTable.SyncRoot, 0) Then
Console.Write("All records are fetched")
Return
End If
Monitor.Exit(myDataTable.SyncRoot)
Console.Write("Fetch in process")
Loop
End Sub