silverlight4 調用 WCF 的模式都是屬於非同步
如果要想取回WCF非同步回傳值 在silverlight專案裡必須使用事件完成模式來取回
這跟 多執行緒 BCAKGROUNFWORKER 的用法是一樣的 感覺
在這裡已經隱含了跨執行緒介面傳遞
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
'------模式判別----------------------
Dim srv = New ServiceReference1.Service1Client 'WCF類別
Dim mode As String = "0"
'---------對非同步的Completed事件 掛上委派動作-------------------------
srv.jk_getisTimeModeAsync(Label_ID.Content)
AddHandler srv.jk_getisTimeModeCompleted, Sub(sd, parameter)
mode = parameter.result
' MessageBox.Show("isTimemode=" + mode)
If mode = "1" Then
' MessageBox.Show("isTimemode=" + mode + ",啟動計時")
Label_isTimemode.Content = "isTimemode=" + mode + ",啟動計時模式"
timer_RTime.Interval = TimeSpan.FromMilliseconds(30 * 1000) '15秒檢查一次是否為預設時間
timer_RTime.Start()
Else
' MessageBox.Show("isTimemode=" + mode + ",不啟動計時")
Label_isTimemode.Content = "isTimemode=" + mode + ",不啟動計時模式"
timer_RTime.Stop()
End If
'------/模式判別/----------------------
End Sub
'---------/對非同步的Completed事件 掛上委派動作/-------------------------
''---------對非同步的Completed事件 掛上委派動作-------------------------
' srv.jkget_sessionIDAsync()
'AddHandler srv.jkget_sessionbyNameCompleted, Sub(sd, parameter)
' mode = parameter.Result
' MessageBox.Show(mode + "=mode")
' End Sub
''---------/對非同步的Completed事件 掛上委派動作/-------------------------
End Sub
End Class
如果要想取回WCF非同步回傳值 在silverlight專案裡必須使用事件完成模式來取回
這跟 多執行緒 BCAKGROUNFWORKER 的用法是一樣的 感覺
在這裡已經隱含了跨執行緒介面傳遞
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
'------模式判別----------------------
Dim srv = New ServiceReference1.Service1Client 'WCF類別
Dim mode As String = "0"
'---------對非同步的Completed事件 掛上委派動作-------------------------
srv.jk_getisTimeModeAsync(Label_ID.Content)
AddHandler srv.jk_getisTimeModeCompleted, Sub(sd, parameter)
mode = parameter.result
' MessageBox.Show("isTimemode=" + mode)
If mode = "1" Then
' MessageBox.Show("isTimemode=" + mode + ",啟動計時")
Label_isTimemode.Content = "isTimemode=" + mode + ",啟動計時模式"
timer_RTime.Interval = TimeSpan.FromMilliseconds(30 * 1000) '15秒檢查一次是否為預設時間
timer_RTime.Start()
Else
' MessageBox.Show("isTimemode=" + mode + ",不啟動計時")
Label_isTimemode.Content = "isTimemode=" + mode + ",不啟動計時模式"
timer_RTime.Stop()
End If
'------/模式判別/----------------------
End Sub
'---------/對非同步的Completed事件 掛上委派動作/-------------------------
''---------對非同步的Completed事件 掛上委派動作-------------------------
' srv.jkget_sessionIDAsync()
'AddHandler srv.jkget_sessionbyNameCompleted, Sub(sd, parameter)
' mode = parameter.Result
' MessageBox.Show(mode + "=mode")
' End Sub
''---------/對非同步的Completed事件 掛上委派動作/-------------------------
End Sub
End Class