■81033 / inTopicNo.5) |
Re[3]: サーバーでの重い処理の経過をリアルタイムに通知する.net |
□投稿者/ sasa (6回)-(2016/08/25(Thu) 17:17:29)
|
■下記の操作で 出来ました ありがとうございました。
@Global.asax に下記の コードを追加 http://stackoverflow.com/questions/11478244/asp-net-web-api-session-or-something Public Class WebApiApplication
Public Overrides Sub Init() AddHandler Me.PostAuthenticateRequest, AddressOf MvcApplication_PostAuthenticateRequest MyBase.Init() End Sub
Private Sub MvcApplication_PostAuthenticateRequest(sender As Object, e As EventArgs) System.Web.HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required) End Sub End Class
Public Class ValuesController Inherits ApiController
A' POST api/values/ Public Function PostValue(<FromBody> ByVal value As String) As String
'重い処理を行うクラスを初期化して Session に保持 Dim task = New 重い処理を行うクラス() Dim string key = "このキーでGet リクエストしてね"
HttpContext.Current.Session(key) = task
'別スレッドで処理を実行 Dim newThread As Thread = New Thread(New ThreadStart(AddressOf 重い処理を行うクラス.Start)) newThread.Start()
Return key End Function
B' GET api/values/key Public Function GetValue(ByVal key As String) As String
Dim task As 重い処理を行うクラス = HttpContext.Current.Session(key) Dim result = task.重い処理の結果()
HttpContext.Current.Session(key).remove()
End Function End Class
|
解決済み
|