0

Windows Phone 8 アプリケーションのコードの一部でSystem.OutOfMemoryException. 使用可能なメモリを調べるために使用したかったのですが、名前空間Process.GetCurrentProcess();に存在しないように見えるため、見つけることができませんでした。System.Diagnostics

Windows API を直接呼び出そうとする唯一のオプションはありますか (それが可能であると仮定しても)? 現在のプロセスを取得したい本当の理由は、アプリケーションで使用可能なメモリの合計を決定することでした。

どんな助けでも親切に感謝します。

編集:

これがコードです

public async static Task<T> InvokeServiceAsync<T>(string BaseAddress, string Path, params object[] ParamArray)
{
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri(BaseAddress);
    HttpResponseMessage response = await client.GetAsync(string.Format("{0}{1}", Path, MvcUtilities.BuildWebApiRequest(ParamArray)));            
    response.EnsureSuccessStatusCode();
    T result = await response.Content.ReadAsAsync<T>(); //Out of memory exception
    return result;
}
4

1 に答える 1

1

いいえ、電話アプリはプロセスを開始したり列挙したりすることはできません。winapi の抜け穴も閉じられており、SDK ヘッダー、認証、およびサンドボックスによって強制されます。利用可能であったとしても、コードが OOM 状態で実行される可能性はほとんどありません。

別のプロセスが原因であるということは決してありません。Phone は、仮想メモリ デマンド ページ オペレーティング システムを実行します。OOM からの回復は非常に困難であり、試みてもほとんど意味がありません。より少ない割り当てでやり遂げる必要があります。

于 2013-10-19T15:42:33.257 に答える