J'ai un thread qui supprime les données d'une file d'attente et les écrit dans le fichier STDIN d'une autre application. J'utilise Stream, mais avec .Write et même .BeginWrite, quand j'envoie des morceaux de 1mb à la deuxième application, mon interface graphique devient laggy pour ~ 1sec. Pourquoi? Mes callbacks sont quelque chose comme ceci:L'écriture de flux est en retard sur mon interface graphique
void Progress(object sender, ProgressArgs e) {
if (this.InvokeRequired) {
this.BeginInvoke(new MethodInvoker(delegate() { Progress(sender, e); }));
return;
}
progressBar1.Value = (int) e.PercentDone;
}
Quel est le débit du processus en aval? –
Avez-vous essayé d'utiliser un profileur de code (comme les produits offerts par Jet Brains ou Red-Gate) pour voir ce qui pourrait causer le décalage? – Kane
Quel ordinateur utilisez-vous? S'il s'agit d'un ordinateur à un seul cœur et à faible vitesse de bus, cette opération pourrait facilement prendre du retard sur votre interface graphique (et le reste de votre ordinateur). –