小编Mic*_*lle的帖子

使用MEF导入许多实例

我正在导出一些实现IFoo接口的类

public interface IFoo { }

[Export("A", typeof(IFoo))]
public class Foo1 : IFoo { }

[Export("B", typeof(IFoo))]
public class Foo2 : IFoo { }
Run Code Online (Sandbox Code Playgroud)

当我尝试使用其中一个导入时

 containter.GetExportedValue<IFoo>("A"); 
Run Code Online (Sandbox Code Playgroud)

它运作良好,但当我尝试导入所有这样的

[ImportMany]
IFoo[] foos;
Run Code Online (Sandbox Code Playgroud)

它不起作用.

谁能告诉我如何解决这个问题?

c# mef

7
推荐指数
1
解决办法
1406
查看次数

使用MSTest测试私有字段

是否可以在单元测试中访问私有字段?

c# mstest

6
推荐指数
1
解决办法
7239
查看次数

从Designer隐藏WPF控件的属性(Visual Studio 2010)

我正在使用Visual Studio 2010和WPF.

我正在创建一个继承自ContentControl的新Control,我想隐藏Content属性,以便在设计时它在Properties窗口中不可见.

我试过了

[Browsable(false)]
Run Code Online (Sandbox Code Playgroud)

就像我们在WinForms中所做的一样,但它不起作用.

有关如何解决这个问题的任何想法?

谢谢.

c# wpf

5
推荐指数
1
解决办法
2538
查看次数

float VS floatN

在OpenCL中使用floatN而不是float时有什么优势吗?

例如

float3 position;
Run Code Online (Sandbox Code Playgroud)

float posX, posY, posZ;
Run Code Online (Sandbox Code Playgroud)

谢谢

opencl

3
推荐指数
1
解决办法
2688
查看次数

我需要帮助理解OpenCL缓冲区中的数据对齐

鉴于以下结构

typedef struct
{
   float3 position;
   float8 position1;
} MyStruct;
Run Code Online (Sandbox Code Playgroud)

我正在创建一个缓冲区,将其作为指向内核的指针传递,缓冲区将具有先前的缓冲区格式.

我知道在写入三个浮点数之后我要在缓冲区中添加4个字节以获得下一个2的幂(16个字节)但我不明白为什么我要在写入字节之前另外添加16个字节位置1.否则我在position1中得到错误的值.

有人能解释一下为什么吗?

opencl

3
推荐指数
1
解决办法
2433
查看次数

使用Control.Invoke死锁?

我正在使用VS2010 Ultimate中的TPL构建应用程序.在我运行应用程序的大多数时候,当我从UI的线程调用DoRepresentation()时,它变得没有响应.

void DoRepresentation()
{
  Parallel.ForEach(cgs, loopOptions, g =>
  {
    UpdateRepresentation(g);
  });
}

void UpdateRepresentation(object g)
{
  view.Invoke(new Action(() =>
  {
    representation = new MyRepresentation(g);
  }));
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么应用程序变得反应迟钝.我有僵局吗?

MyRepresentation中,我做了一些OpenGL调用.

view是Form1中的一个Control(主窗体).

当应用程序无响应时,我从VS IDE暂停它,这是我得到的信息

在"并行任务"窗口中,我得到以下内容:

ID  Status       Message<br>
1    ?Waiting   Task1 is waiting on object: "Task2"<br>
2    ?Waiting   No waiting information available<br>
Run Code Online (Sandbox Code Playgroud)

在"调用堆栈"窗口中,我得到以下内容:

[In a Sleep, wait, or join]<br>
[External Code]<br>
Test.dll!Render.DoRepresentation()<br>
App1.exe!Form1.Button1_Click<br>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

c# winforms task-parallel-library

1
推荐指数
1
解决办法
3360
查看次数

标签 统计

c# ×4

opencl ×2

mef ×1

mstest ×1

task-parallel-library ×1

winforms ×1

wpf ×1