저장 프로 시저를 실행하는 동안 내 양식이 멈추지 않도록하려면 어떤 방법을 제안하고 싶습니다. 첨부 된 코드를 참조하십시오. 스트림 API를 통해 Twitter에서 데이터를 수집하고 sproc을 실행하는 동안 양식이 중단됩니다. 폼이 멈추지 않도록하려면 BackgroundWorker를 사용하는 것이 가장 좋습니다. 이 코드가 어떻게 구현되는지 예제를 통해 알려주시겠습니까?vb.net에서 응답하지 않는 양식 피하기
Imports System.Linq
Imports System.Text
Imports System.Net
Imports System.IO
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json
Imports System.Data.SqlClient
Imports System.Threading
Public Class Form1
Private Sub btnDB_Click(sender As System.Object, e As System.EventArgs) Handles btnDB.Click
Dim url As String = "https://stream.twitter.com/1.1/statuses/filter.json?track=twitter"
Dim request As WebRequest = WebRequest.Create(url)
request.Credentials = New NetworkCredential("username", "pwd")
Dim WebResponse = request.GetResponse()
Dim encode As Encoding = Encoding.GetEncoding("utf-8")
Dim responseStrem = New StreamReader(WebResponse.GetResponseStream(), encode)
While Not responseStrem.EndOfStream
'Console.WriteLine(responseStrem.ReadLine());
Dim json As String = responseStrem.ReadLine()
If json.Length <> 0 Then
ParseJson(json)
End If
End While
End Sub
Private Sub ParseJson(ByVal Json As String)
Dim connectionstring As String = "Data Source=.;Initial Catalog=db_twitter_stream;User ID=sa;Password=xxx"
Dim counter As Integer = 0
Dim conn As New SqlConnection(connectionstring)
conn.Open()
Dim o As JObject = JObject.Parse(json)
Dim tweet As String = o("text")
Dim source As String = o("source")
Dim created_at As String = o("created_at")
Dim cmd As New SqlCommand("dbo.prc_tweets", conn)
cmd.CommandType = System.Data.CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@tweet", tweet))
cmd.Parameters.Add(New SqlParameter("@source", source))
cmd.Parameters.Add(New SqlParameter("@created_at", created_at))
cmd.ExecuteNonQuery()
counter = counter + 1
lblCount.Text = counter.ToString()
conn.Close()
End Sub
Private Sub btnQuit_Click(sender As System.Object, e As System.EventArgs) Handles btnQuit.Click
Me.Close()
End Sub
End Class
참조 : http://stackoverflow.com/questions/10398490/how-to-make-a-very-simple-asynchronous-method-call-in-vb-net –