Articles of asincrono

Perché è necessario EndExecuteNonQuery ()?

La documentazione qui afferma che gli sviluppatori devono chiamare il metodo EndExecuteNonQuery per completare l’operazione. Non sono stato in grado di trovare una buona ragione per spiegare perché è, o quali sono i risultati di non chiamare EndExecuteNonQuery . Qualche idea su cosa accadrà se non viene chiamato? Non voglio bloccarlo, c’è un modo per […]

Problema di sessione quando si utilizza il metodo Session_Start asincrono?

Recentemente ho iniziato a utilizzare .NET 4.5 su .NET 4.0 e async funzione async . Tuttavia, quando lo si utilizza in ASP .NET nell’evento Session_Start nel mio Global.asax, indipendentemente da ciò che faccio (se eseguo un’attesa e accedo a una sessione), causerà un errore. Ecco il codice. Sono sicuro che puoi replicare il problema. Il […]

PageMethods and Session

Ho cercato in alto e in basso per questa soluzione. Qualsiasi intuizione sarà molto apprezzata. La situazione: quando vi sono più chiamate PageMethod in una singola pagina, ciascuna chiamata al metodo tiene bloccato un blocco sull’object Session. Le chiamate PageMethod possono essere rese asincrone solo con la direttiva @Page viene impostata su False|ReadOnly Risultati: quando […]

Aggiungere una firma asincrona a un metodo è un cambiamento sostanziale?

Nell’affrontare una domanda su quanto usare async / await, cioè “tutti i metodi dovrebbero restituire Task ?”, L’autore di questa risposta , Matías Fidemraizer, afferma che, anche se il tuo metodo attualmente fa solo cose sincrone, dovrebbe comunque restituire un compito quindi se lo fai fare cose asincrone più tardi, “puoi trasformarlo in effettive operazioni […]

Differenza tra Task.Delay () e new Task (() => Thread.Sleep ())

Stavo assemblando una piccola demo per eseguire un metodo a lunga esecuzione simulato con Thread.Sleep() e volevo aggiungere async per passare facilmente da un processo sincrono a uno asincrono. Ecco il codice iniziale: private void button1_Click(object sender, EventArgs e) { LongProcess(); } private void LongProcess() { for (int i = 0; i < 33; i++) […]

Convertire il metodo sincrono C # esistente in asincrono con async / await?

A partire da un metodo di sincronizzazione I / O sincrono (sotto), come faccio a renderlo asincrono usando async / await? public int Iobound(SqlConnection conn, SqlTransaction tran) { // this stored procedure takes a few seconds to complete SqlCommand cmd = new SqlCommand(“MyIoboundStoredProc”, conn, tran); cmd.CommandType = CommandType.StoredProcedure; SqlParameter returnValue = cmd.Parameters.Add(“ReturnValue”, SqlDbType.Int); returnValue.Direction = […]

Quando la GUI è sovraccaricata?

Supponiamo che tu stia invocando in modo permanente un metodo in modo asincrono sul thread / dispatcher dell’interfaccia utente while (true) { uiDispatcher.BeginInvoke(new Action(insert_), DispatcherPriority.Normal, new object[] { }); } Ad ogni esecuzione del programma si osserva che la GUI dell’applicazione inizia a congelarsi dopo circa 90 secondi a causa dell’inondazione delle invocazioni (il tempo […]

Metodo asincrono con foreach

Ho qualche metodo asincrono public static Task GetUser(NameValueCollection parameters) { return CallMethodApi(“users.get”, parameters, CallType.HTTPS); } E scrivo il metodo qui sotto public static IEnumerable GetUsers(IEnumerable usersUids, Field fields) { foreach(string uid in usersUids) { var parameters = new NameValueCollection { {“uids”, uid}, {“fields”, FieldsUtils.ConvertFieldsToString(fields)} }; yield return GetUser(parameters).Result; } } Questo metodo è asincrono? Come […]

Come ottenere “vera” asincronia

Nella sua risposta a questa domanda , Stephen Cleary si riferisce all’asincronia “falsa” e all’asincronia “vera”. c’è un modo molto più semplice per pianificare il lavoro nel pool di thread: Task.Run. La vera asincronia non è ansible, perché hai un metodo di blocco che devi usare. Quindi, tutto ciò che puoi fare è una soluzione […]

Come prendere 404 WebException per WebClient.DownloadFileAsync

Questo codice: try { _wcl.DownloadFile(url, currentFileName); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null) if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound) Console.WriteLine(“\r{0} not found. “, currentFileName); } scarica il file e informa se si è verificato un errore 404. Ho deciso di scaricare i file in modo asincrono: try { _wcl.DownloadFileAsync(new […]