启动异步数据同步操作。同步结束时,将调用 AsyncCallback 委托。同步期间不报告状态。
命名空间: System.Data.SqlServerCe
程序集: System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)
语法
声明
Public Function BeginSynchronize ( _
onSyncCompletion As AsyncCallback, _
state As Object _
) As IAsyncResult
用法
Dim instance As SqlCeReplication
Dim onSyncCompletion As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult
returnValue = instance.BeginSynchronize(onSyncCompletion, _
state)
public IAsyncResult BeginSynchronize(
AsyncCallback onSyncCompletion,
Object state
)
public:
IAsyncResult^ BeginSynchronize(
AsyncCallback^ onSyncCompletion,
Object^ state
)
member BeginSynchronize :
onSyncCompletion:AsyncCallback *
state:Object -> IAsyncResult
public function BeginSynchronize(
onSyncCompletion : AsyncCallback,
state : Object
) : IAsyncResult
参数
- onSyncCompletion
类型:System. . :: . .AsyncCallback
由调用方实现的、在同步结束时调用的 IAsyncResult 委托。
- state
类型:System. . :: . .Object
AsyncState 属性返回的用户定义的对象。
返回值
类型:System. . :: . .IAsyncResult
已通过调用此函数启动的异步操作使用的 IAsyncResult 接口。您可以使用此接口测试同步是否已完成,也可以一直等到同步结束。
注释
有关 SQL Server Compact 3.5 中的异步数据同步的信息,请参阅 SQL Server Compact 3.5 联机丛书中的“异步数据同步”。
示例
下面的示例演示如何设置 SQL Server Compact 3.5 复制以执行异步数据同步。
Public Sub SyncCompletedCallback(ByVal ar As IAsyncResult)
Try
Dim repl As SqlCeReplication = CType(ar.AsyncState, SqlCeReplication)
' Complete the asynchronous sync and test for errors
'
repl.EndSynchronize(ar)
Catch
' Handle errors here
'
End Try
End Sub 'SyncCompletedCallback
Public Sub Test()
Dim repl As SqlCeReplication = Nothing
Try
' Set the Replication object
'
'NOTE: when possible, prompt users to enter security
'credentials at runtime. If you store credentials in a file,
'you must secure the file to prevent unauthorized access.
'
repl = New SqlCeReplication( _
"https://www.adventure-works.com/sqlmobile/sqlcesa35.dll", _
"MyInternetLogin", _
"<enterStrongPassword>", _
"MyPublisher", _
"MyPublisherDatabase", _
"MyPublisherLogin", _
"<enterStrongPassword>", _
"MyPublication", _
"MySubscriber", _
"Data Source=MyDatabase.sdf")
' Begin asynchronous sync; This call returns immediately
'
Dim ar As IAsyncResult = repl.BeginSynchronize( _
New AsyncCallback(AddressOf SyncCompletedCallback), _
repl)
Thread.Sleep(3000)
' Cancel the sync if it didn't complete in 3 seconds; normally,
' this is hooked up to a button's Click event
'
repl.CancelSynchronize()
Catch
' Handle errors here
Finally
' Dispose the repl object
'
repl.Dispose()
End Try
End Sub 'Test
public void SyncCompletedCallback(IAsyncResult ar)
{
try
{
SqlCeReplication repl = (SqlCeReplication)ar.AsyncState;
// Complete the asynchronous sync and test for errors
//
repl.EndSynchronize(ar);
}
catch (SqlCeException)
{
// Handle errors here
//
}
}
public void Test()
{
SqlCeReplication repl = null;
try
{
// Set the Replication object
//
//NOTE: when possible, prompt users to enter security
//credentials at runtime. If you store credentials in a file,
//you must secure the file to prevent unauthorized access.
//
repl = new SqlCeReplication(
"https://www.adventure-works.com/sqlmobile/sqlcesa35.dll",
"MyInternetLogin",
"<enterStrongPassword>",
"MyPublisher",
"MyPublisherDatabase",
"MyPublisherLogin",
"<enterStrongPassword>",
"MyPublication",
"MySubscriber",
"Data Source=MyDatabase.sdf");
// Begin asynchronous sync; This call returns immediately
//
IAsyncResult ar = repl.BeginSynchronize(
new AsyncCallback(SyncCompletedCallback),
repl);
Thread.Sleep(3000);
// Cancel the sync if it didn't complete in 3 seconds; normally,
// this is hooked up to a button's Click event
//
repl.CancelSynchronize();
}
catch (SqlCeException)
{
// Handle errors here
}
finally
{
// Dispose the repl object
//
repl.Dispose();
}
}