イントレ
  • 新規
  • ペイント
  • 一覧
  • 管理
  • Home
  • ダウンロード
  • 日記
  • イラスト
  • リンク
  • About
  •  RSS
  •  日記カテゴリのRSS

本文へジャンプ


イントレ。

«Prev || 1 · 2 · 3 · 4 · 5 · 6 ·... | | Next»

2010-05-23

並列化の罠?

[日記] C# >> 2010/05/23 (日) | 01:18:57 | 魅椥 愁
こんな感じのコードを書いてました。

var items = GetItems();
ProcessItems(items);
...

private void ProcessItems(IEnumerable items)
{
  Task.Factory.StartNew(()=>
  {
    var array = items.Where(...).Select(...).ToArray();
    ... arrayをいろいろいじる ...
  });
}

で、ProcessItemsでitemsにアクセスした瞬間にメソッドが終了します。
例外は吐き出されません。
VSでデバッグすると、itemsの値が表示できません。

ガベージコレクトでもされたんでしょうか?
Task使って並列処理をしてるせいもあるんでしょうが、原因が不明・・・。再現性も低いし。
とりあえず、GetItems().ToArray()としてお茶を濁してみたけど、こういうのって厄介なバグになりそうだなぁ。

2010-04-28

VS2010日本語版。

[日記]  >> 2010/04/28 (水) | 20:17:40 | 魅椥 愁
21日→27日→28日とノビノビになったけど、ようやくリリースしたみたいです。
Express EditionはMicrosoft /Expressからダウンロードできますね。

英語版使ってきたせいか、メニューの「ファイル(F)」とかの(F)がとても邪魔に感じるw

2010-04-22

Full-row Selection TreeView。

[日記] C# / WPF >> 2010/04/22 (木) | 02:50:18 | 魅椥 愁
以前チャレンジ失敗して放置してたんだけど、ズバリな回答案があった。

Highlight whole TreeViewItem line in WPF

Borderの中にGridを配置してGrid.Marginを調整することで子要素を段落下げしている。
TreeViewItemの親を辿ることで階層の深さを取得、Grid.Marginにコンバータ経由で渡している。

こんなシンプルな解決案があったなんて。・・・無念。

<追記>
・・・って思ったんだけど、DataTemplateと組み合わせると問題発生。
コンバータ経由で階層の深さを取得する際のタイミングの問題で、
TreeViewItem.Itemsに追加→スタイル設定となって欲しいんだけど逆になるっぽい。

TreeViewItem.Parentが変化したら再計算して適用すればいいのですが、
それを検知する方法がない・・・。
困った。
</追記>



そして、日記を更新する癖が完全に抜けてる件。

2010-04-13

VS2010 Launch.

[日記]  >> 2010/04/13 (火) | 02:12:54 | 魅椥 愁
Microsoft Visual Studio 2010
Microsoft /Express

リリースきました。
Express Editionもダウンロードが可能です。
・・・ただし英語版のみみたいですが。

日本語版はいつになるのかな~♪

2010-04-04

Directなんとか。

[日記]  >> 2010/04/04 (日) | 23:00:26 | 魅椥 愁
自分の中でDirectXは9で止まっているのですが、最新はもう11ですよ。
VistaにはDXGI対応のD3D9ExとD3D10、D3D10.1、そして、Vista SP2とWin7にはDirect3D11。
さらにD3D10.1上で動くDirect2DとDirectWrite。・・・色々進みすぎです。

ということで、SlimDX経由で遊びながら得た適当メモ。

・Direct3D9Ex
D3D9のDXGI対応版。
リソース周りはDXGIが管理するためPool.Managedを指定すると怒られる。

・DXGI
D3D10以降はデバイスとリソースが明確に分離された。
DXGIはリソース(GPUメモリ)周りを管理してて、サーフェイスやスワップチェインもこっちの管轄。
この仕組のおかげで、別々のDirect3D間でサーフェイスの共有が可能になっている。
(D3D10で作成したサーフェイスをD3D9Exで開いて操作出来る…等)

・Direct3D10
DXGIを意識して内部構成が大きく変化しているため、D3D9とはまるっきり性格が違う。
初期化はデバイスとスワップチェインを別々に行い、Presentはスワップチェインから行う。
リソース仮想化の概念もあって、頂点バッファやインデックスバッファ、テクスチャ等も全て汎用バッファとして扱う。
サーフェイスも汎用バッファ扱いなので、レンダーターゲットを指定するにもRenderTargetViewを経由して操作する・・・等。
固定機能が無いのでシェーダーの使用必須、D3D10対応ハードウェア必須。

・Direct3D10.1
Vista SP1以降で対応。
機能レベルの指定が出来たので、D3D9ハードウェアでも動かせるようになった。
WARPというリファレンスラスタライザよりは速いソフトウェアラスタライザが付属するため、
ハードウェアが対応していない部分はWARPでエミュレーションとかが可能に。

・Direct2D&DirectWrite
GDI+のD3D10.1実装とも言えるようなもの。
D3D10.1サーフェイスからRenderTargetを作成して、それに2D描画する。
GDI+でやれるような描画はだいたいやれる。

・Direct3D11
デバイスからコンテキストが分離。
スプライトなどが用意されなくなった。
調査中。


後半息切れ気味・・・。
とりあえず、いっぱい変わったってことがわかった。(汗)
«Prev || 1 · 2 · 3 · 4 · 5 · 6 ·... | | Next»

HTML creation time [0.18sec.]
"intre." by MinagiSyu, sense 1999.11.23.
Powered by Nucleus CMS v3.41

Utilities

タグ
園芸 | SAP1x | C# | SAPFx | サッカー | .NET | Windows 7 | WPF | ツクールもどき | PCパーツ | ...すべてのタグ
カレンダー
<   2010-07   >
日月火水木金土
    123
45678910
11121314151617
18192021222324
25262728293031
最近の更新
    2010-07-11
  • [日記] WebMatrixが本気過ぎる件。
  • 2010-06-23
  • [日記] Google Reader APIの認証がまた変わった?
  • [更新履歴] Google Reader Notifier 改 r3をリリース。
  • [ダウンロード] Google Reader Notifier 改
  • 2010-05-31
  • [日記] DynamicObjectを使ったINotifyPropertyChangedラッパー。
  • 2010-05-28
  • [日記] タブが非アクティブな時にページを書き換えるフィッシング攻撃。
  • 2010-05-24
  • [日記] Mercurialのsubrepo。
Adsense