私は私が何をしたかをお見せ私のコードの一部を取得しました:UIスレッドで
public void CreateImgObj(object sender)
{
try
{
FileStream fs = File.Open((string)sender, FileMode.Open);
Bitmap dImg = new Bitmap(fs);
MemoryStream ms = new MemoryStream();
dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
BitmapImage bi_img = new BitmapImage();
bi_img.BeginInit();
bi_img.StreamSource = new MemoryStream(ms.ToArray());
bi_img.EndInit();
evt_send_img(bi_img);
}
catch (Exception e)
{
evt_error(e);
}
}
:一部のフォルダに私の画像を確認スレッドで
を
private void img_recieve(object sender)
{
try
{
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
{
items.Add(new Img { Img_In = (BitmapImage)sender });
}));
}
catch (Exception e)
{
messageerreur(e);
}
}
注:「img_recieve」は「evt_send_img」によって実行されます。
Thks
何T2が受信すると、彼らは同時に発生しないように、貯蓄と読みが共通のロックオブジェクトを必要とする、T1を送信するものと同じメモリである場合。 –
なぜストリームを使用しますか? A)1 - イメージオブジェクトを作成します。オブジェクトを2番目のスレッドに送信します。 B)1.画像オブジェクトを受信する。 2. UIでの表示。 (Wpf) – Fabio
@Fabio私はこれを試しましたが、私はT2によって送信されたオブジェクトを使用できなかったので、これを実行できませんでした。あなたにこれを行う方法を私に説明するための例があれば、あなたは私を見せることができます。 –