FC2ブログ

KIC

KICのメモ帳  

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
                  

Pingクラスを使うと、msvcr80.dllのエラーが出るメモ

.NET Framework 2.0以降で追加されたPingクラスを使って任意のコンピュータにpingし続けるアプリケーションを作って、pingしていたらmsvcr80.dllでエラーが出る。

エラー署名

ModName: msvcr80.dll
Offset: 000150d8
msvcr80.dllのエラー

C#[pingping.exe]

using System; using System.Net; using System.Net.NetworkInformation; namespace pingping { class Program { static void Main(string[] args) { string IpAddrStr; IPAddress IpAddr; Console.WriteLine("IPアドレスを入力してください!"); IpAddrStr = Console.ReadLine(); if (IPAddress.TryParse(IpAddrStr, out IpAddr)) { while (true) { Pinger(IpAddr); } } else { // 入力したIPアドレスが変な場合はこっち } } static public void Pinger(IPAddress IpAddr) { Ping png = new Ping(); PingReply reply; try { // ここでSendする! reply = png.Send(IpAddr, 100); Console.WriteLine( "{0},{1},{2}", reply.Address, reply.RoundtripTime, reply.Status); } catch (Exception ex) { Console.WriteLine(ex); Console.WriteLine("Pingerは停止しました。何かキーを押してください。"); Console.ReadLine(); } } } }

たぶん、このコードだとクラスメソッドのPinger内でpingインスタンスを毎回生成してるので、メモリをたくさん消費する。タスクマネージャでメモリ消費量を見てみると、どうやら15~23MBくらいメモリを使っているみたい。

実行環境

Windows XP Professional SP3とかWindows Vista Businessで実行してみたら、VistaでもXPでも同様のエラーが出る。
また、比較的ロースペックなPC(Celelon2.2Ghzとか、PentiumM 1.2Mhzなど)、または高負荷環境の方がエラーが出やすい。

対策

以下のWebページに書かれてる.NET Framework 2.0に依存しないPing送信をすればよいと思う。
[Pingを送信する: .NET Tips: C#, VB.NET, Visual Studio]

                  

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://kicsysytem.blog70.fc2.com/tb.php/179-c9742b85

 | HOME | 

カレンダー

« | 2018-12 | »
S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

過去の記事

カテゴリ

最近の記事

コメント

トラックバック

Appendix

kics

kics

FC2ブログへようこそ!

FC2Ad

メール:kic_weblog@yahoo.co.jp
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。