![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
お世話になります、早速ですがよろしくお願いいたします。
インターネット上のサーバーから XML を取得して treeView コントロールに要素を展開したく、
ネット上の情報をもとに、
XDocument doc = XDocument.Load("http://localhost/example.xml");
とやってみましたが、XDocument.Load が初回だけ遅い気がします。
そこで、新規フォームにボタン1つとラベル2つを置いて、
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;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
private System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
private int cnt = 0;
private string[] url = {
"http://rss.dailynews.yahoo.co.jp/fc/domestic/rss …
"http://rss.dailynews.yahoo.co.jp/fc/rss.xml",
"http://rss.dailynews.yahoo.co.jp/fc/world/rss.xml"
};
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.label1.Text = this.url[cnt];
this.label2.Text = "";
this.sw.Reset();
this.sw.Start();
System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load(this.label1.Text);
this.sw.Stop();
this.label2.Text = sw.Elapsed.ToString();
cnt++;
if (cnt >= this.url.Length)
{
cnt = 0;
}
}
}
}
として動かしてみると、私のPCでは初回だけ15秒程度かかります。
原因がわからず困っております、
少しでも早くなるようにするにはどのようにすればよいか教えてください。
もし、XDocument.Load の初回が遅いのはどうしようもないのであれば、
他のよい方法を教えていただけると助かります。
ちなみに、C#&VisualStudio 初心者です。
どうぞ、よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
えー、ちょっと状況が良く分からないのですが、
名前空間から察するにWindowsFormsアプリケーションだと思われますが、なんでわざわざ
var doc = XDocument.Load("http://localhost/example.xml");
のようにネット上(しかもlocalhostで自サーバを立てて)から読み込んでいるのでしょうか?
最初だけ読み込みが遅い、というのは、Webサーバ(IISやIIS Express)の起動オーバヘッドだと思います。
これを、
var doc = XDocument.Load("example.xml");
var doc = XDocument.Load("D:\test\example.xml");
とするか、stream経由の読込にすれば問題ないのでは。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Version Control on Unity
-
VBSでテキストファイルの2行目...
-
テキストファイルの1行目のみを...
-
vba クリップボードクリアにつ...
-
プログラミング
-
IT業界より楽に稼げる業界って...
-
過剰なオブジェクト指向脳から...
-
そのまま使っただけなのに・・...
-
Google ColaboでGUI作成
-
python の 連鎖代入の文法
-
JRのjsonファイルって使って大...
-
HTMLソースが表示のページのも...
-
Premiere Proについて教えてく...
-
windowsでテキストファイルの各...
-
Gitについて質問。 クローンし...
-
pythonにてseleniumを使うも、...
-
htaccessで特定のディレクトリ...
-
テキストデータ変換(プログラ...
-
シェルのSTEP数について教えて...
-
プログラミング ソースコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# 簡単なシューティング 自機...
-
C#でのXDocument.Loadについて...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
アクセスVBAのMe!と[ ]
-
「PC Helpsoft Driver Updated...
-
VBA エンターキーでイベントに...
-
ImageMagickでgif画像の一部が...
-
VBの質問#if 0 then ってどう...
-
VBAにてメッセージボックスを最...
-
Do~Loopした回数をカウントしたい
おすすめ情報
shockatz 様ありがとうございます。
説明不足で申し訳ありません。
御推察の通りフォームアプリケーションです。
PHPによるWebアプリと連携する必要があり、
XMLの取得先は、インターネット上に設置したPHPスクリプトになります。
"http://localhost/example.xml"としたのはテスト用に置いたファイルで、
ローカルにapacheを動かしています。
なので、ローカルPC上のファイルを読み込むのではなく"http"経由で行いたいです。
「stream経由の読み込み」についてご指南頂けると助かります。
よろしくお願いいたします。