Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Проблема с асинхронностью
     
    
Добавлено: 22.03.13 13:21
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Kryeker
      
       
  
Всем привет. Вот вызов нижеприведенной функции тормозит весь интерфейс, хотя по идее она должна выполниться асинхронно, в чем может быть проблема?
 
    
Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
        Dim a = Await SpacesPost("http://spaces.ru/friends/?name=Kryeker&sort=1" & "&p=" & 1)
    End Sub
Public Async Function SpacesPost(URL As String, Optional body As String = "") As Task(Of String)
        WebRequest1 = CType(WebRequest.Create(URL), HttpWebRequest)
        Dim tempCookie As New CookieContainer
        With WebRequest1
            .ContentType = "application/x-www-form-urlencoded"
            .Method = "POST"
            .AllowAutoRedirect = False
            .CookieContainer = Cookie1
            .UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
        End With
        Dim postBytes As Byte() = Encoding.UTF8.GetBytes(body)
        WebRequest1.ContentLength = postBytes.Length
        Dim requestStream = Await WebRequest1.GetRequestStreamAsync
        requestStream.Write(postBytes, 0, postBytes.Length)
        requestStream.Close()
        Dim response = CType(Await WebRequest1.GetResponseAsync, HttpWebResponse)
        tempCookie.Add(response.Cookies)
        Cookie1 = tempCookie
        Return New StreamReader(response.GetResponseStream()).ReadToEnd()
    End Function
Благодарю
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 2
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #1
       
Добавлено:  22.03.13 20:48
       
    
       
  
 
    
Что именно натолкнуло тебя на эту мысль? Это? Await WebRequest1.GetRequestStreamAsync 
А ничего что ты синхронного пишешь в него в UI треде?
А ничего что ты в том же UI треде синхронно получаешь ResposeStream и так же синхронного из него читаешь данные?
Тебя это не смущает?
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Kryeker
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 3
Ответов: 5
      
 Профиль |  | #2
       
Добавлено:  22.03.13 23:13
       
    
       
  
Спасибо. Я не знал этих вещей, работает.