2017-03-29 12 views
1

右から左に移動するテキストを処理する最善の方法を探しています。TextBoxを処理するスマートな方法OnChangeイベント

だから、私はこの作業コードを持っている:

// write text for simulation view 
File.WriteAllText("text1.txt", textBox1.Text, Encoding.UTF8); 
// delete temporary processed video with overlayed text 
ProcessFileOperations.deleteFile("text1.avi"); 

ProcessFileOperations.overlayText(text1ColorButton.BackColor.Name, filePath, 0); 
mediaPlayer.URL = "text1.avi"; 
mediaPlayer.Ctlcontrols.play(); 

これがオーバーレイさスクロールテキストとビデオを作成し、瞬時にシミュレーションとして、それを果たしています。問題は、速いwindowmediaplayerがテキストを書き込むときに到着します。メインスレッドを「フリーズ」しないようにするには、どのようにしてテキストを挿入し、メディアファイルをいくつかの遅延や一時停止で更新させることができますか?

+0

を実行しますが、テキストを提出するボタンがありますか? – TheLethalCoder

+0

しかし、アイデアはシミュレーションを表示することです。これはLED制御ソフトウェア用です –

答えて

1

これは変更が別のスレッドを実行し、一度完成したメディアプレーヤーは、新しいファイルで

await Task.Run(()=>{ 
    // write text for simulation view 
    File.WriteAllText("text1.txt", textBox1.Text, Encoding.UTF8); 
    // delete temporary processed video with overlayed text 
    ProcessFileOperations.deleteFile("text1.avi"); 


ProcessFileOperations.overlayText(text1ColorButton.BackColor.Name, filePath, 0); 
}); 

mediaPlayer.URL = "text1.avi"; 
mediaPlayer.Ctlcontrols.play(); 
+0

.NET 4を使用しています。エラーが発生しました: 'await'演算子は非同期メソッド内でのみ使用できます。このメソッドを 'async'修飾子でマークし、戻り値の型を 'Task'に変更することを検討してください。 \tギャラクシーG2D \t C:\ Users \ Power User \ Desktop \ 290317-chroma-work \ C_Sharp_Demo \ Form1.cs –

+0

@PaulElmatsidisこれをチェックするhttp://stackoverflow.com/questions/9110472/using-async-await-on- net-4 – Krishna

+0

@PaulElmatsidisまたは通常のスレッドを使用してそのプロセスを非同期で実行することができます – Krishna

関連する問題