C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: アプリケーション終了時エラー


(過去ログ 173 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■99677 / inTopicNo.1)  アプリケーション終了時エラー
  
□投稿者/ TORU (1回)-(2022/05/11(Wed) 15:29:28)

分類:[.NET 全般] 

こんにちは
宜しくお願い致します
WEBカメラで画像を画面に表示しているのですが
開始させて
btnスタートを押してからbtnクローズを押せば終了してくれるのですが
btnスタートを押さずにbtnクローズを押すと
「アプリケーションのコンポーネントで〜」のエラーが出てしまいます
色々試したのですがうまく終了しないので
教えて下さい
宜しくお願い致します



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AForge;
using AForge.Video;
using AForge.Video.DirectShow;
using System.Drawing.Imaging;

(省略)

        private void btn_start_Click(object sender, EventArgs e)
        {
            if (comboBox_cameralist.SelectedIndex != -1 ) 
            {
                try
                {
                    VideoDevice = new VideoCaptureDevice(CaptureDevice[comboBox_cameralist.SelectedIndex].MonikerString);
                    VideoDevice.NewFrame += new NewFrameEventHandler(NewVideoFrame);
                    VideoDevice.Start();
                    comboBox_cameralist.Enabled = false;
                    btn_capture.Enabled = true;
                    btn_stop.Enabled = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

(省略)

        private void btn_close_Click(object sender, EventArgs e)
        {
            if(VideoDevice.IsRunning == true) 
            {
                VideoDevice.Stop();
            }
            Application.Exit();
        }

(省略)

引用返信 編集キー/
■99678 / inTopicNo.2)  Re[1]: アプリケーション終了時エラー
□投稿者/ Hongliang (1237回)-(2022/05/11(Wed) 16:08:06)
> 「アプリケーションのコンポーネントで〜」のエラーが出てしまいます
メッセージは勝手に省略せず全部書きましょう。
例外であればメソッドの呼び出し履歴もまとめて(ファイルパスにユーザ名とかが出る可能性だけはご注意を)。

> 色々試したのですがうまく終了しないので
試された色々を書いていただかないと、それもう試しましたってことになって効率がよくないです。

とりあえず、FormClosedイベントでVideoDevice.Stopしてみるのはどうでしょうか。
引用返信 編集キー/
■99679 / inTopicNo.3)  Re[2]: アプリケーション終了時エラー
□投稿者/ furu (154回)-(2022/05/11(Wed) 16:14:53)
No99677 (TORU さん) に返信
> 「アプリケーションのコンポーネントで〜」のエラーが出てしまいます
「〜」もわからないし、どの文でエラーになるかも書いてほしい。

色々試したそうですが
ここに書かれたプログラムだと
VideoDeviceがnullでエラーになりそう。
引用返信 編集キー/
■99682 / inTopicNo.4)  Re[3]: アプリケーション終了時エラー
□投稿者/ 魔界の仮面弁士 (3358回)-(2022/05/11(Wed) 18:58:45)
No99679 (furu さん) に返信
> VideoDeviceがnullでエラーになりそう。

if(VideoDevice?.IsRunning ?? false)
{
 VideoDevice.Stop();
}

でどうかなー。


あと、VideoCaptureDevice のイベントは別スレッドで処理されるはずなので、
イベントの割り当て解除も行った方が良いかもしれません。(未確認)
…どうせアプリを閉じるので関係ないとは思いますが。

 if (VideoDevice?.IsRunning ?? false)
 {
   VideoDevice.NewFrame -= new NewFrameEventHandler(NewVideoFrame);
   Invoke((MethodInvoker) delegate
   {
     VideoDevice.SignalToStop();
     VideoDevice.WaitForStop();
   });
 }
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -