Tag: C#的

如何将消息发布到运行消息泵的STA线程?

所以,在这之后 ,我决定在一个专用STA线程上显式实例化一个COM对象。 实验表明,COM对象需要一个消息泵,我通过调用Application.Run()创build消息泵: private MyComObj _myComObj; // Called from Main(): Thread myStaThread = new Thread(() => { _myComObj = new MyComObj(); _myComObj.SomethingHappenedEvent += OnSomthingHappened; Application.Run(); }); myStaThread.SetApartmentState(ApartmentState.STA); myStaThread.Start(); 我如何从其他线程发布消息STA线程的消息泵? 注意:为了简洁起见,我大量地编辑了这个问题。 现在@Servy的答案的一些部分似乎是无关的,但他们是原来的问题。

读/写“扩展”文件属性(C#)

我试图找出如何读取/写入C#扩展文件属性,例如您可以在Windows资源pipe理器中看到的注释,比特率,访问date,类别等。 任何想法如何做到这一点? 编辑:我将主要是读/写video文件(AVI / DIVX / …)

使用reflection设置对象属性

在C#3.5中有一种方法可以使用reflection设置对象属性吗? 例如: MyObject obj = new MyObject(); obj.Name = "Value"; 我想用reflection来设置obj.Name 。 就像是: Reflection.SetProperty(obj, "Name") = "Value"; 有没有办法做到这一点?

我如何返回C#中的函数的多个值?

我读了这个问题的C ++版本,但并没有真正理解它。 有人可以解释清楚,如果可以做,如何?

连接到networking共享时如何提供用户名和密码

当连接到当前用户(在我的情况下,networking使能的服务用户)没有权限的networking共享时,必须提供名称和密码。 我知道如何使用Win32函数(来自mpr.dll的WNet*系列)执行此操作,但希望使用.Net(2.0)function执行此操作。 有什么select可用? 也许更多的信息可以帮助: 用例是一个Windows服务,而不是一个Asp.Net应用程序。 该服务运行在一个没有共享权限的帐户下。 客户端不知道共享所需的用户帐户。 客户端和服务器不是同一个域的成员。

静态variables存储在哪里(在C / C ++中)?

在一个可执行文件的段(.BSS,.DATA,其他)是存储的静态variables,以便它们没有名称冲突? 例如: foo.c: bar.c: static int foo = 1; static int foo = 10; void fooTest() { void barTest() { static int bar = 2; static int bar = 20; foo++; foo++; bar++; bar++; printf("%d,%d", foo, bar); printf("%d, %d", foo, bar); } } 如果我编译这两个文件并将其链接到一个重复调用fooTest()和barTest的main,则printf语句将独立增加。 有意义的,因为foo和barvariables是翻译单元的局部variables。 但是,存储分配在哪里? 要清楚,假设是你有一个工具链,将输出一个ELF格式的文件。 因此,我相信这些静态variables的可执行文件中必须保留一些空间。 为了讨论的目的,我们假设我们使用GCC工具链。

我可以从另一个构造函数(做构造函数链)在C ++中调用一个构造函数?

作为一个C#开发人员,我习惯于通过构造函数来运行: class Test { public Test() { DoSomething(); } public Test(int count) : this() { DoSomethingWithCount(count); } public Test(int count, string name) : this(count) { DoSomethingWithName(name); } } 有没有办法在C ++中做到这一点? 我试着调用类名称并使用“this”关键字,但都失败了。

我该如何补救“断点不会被击中。 没有符号已经加载这个文件。“警告?

快递版C#桌面应用程序。 然后工作5秒钟后不工作。 我尝试了以下。 确保在所有程序集上都设置了debuggingconfiguration,debugging标志和完整debugging信息。 从我的整个机器上删除所有bin和obj文件夹以及与项目相关的所有DLL。 重新创build从头开始的项目。 重启。 我在解决scheme中有两个WinForms项目。 其中一个加载debugging信息,一个不。 他们都指的是我试图在工程文件中完全相同的方式获取debugging信息的程序集。 有任何想法吗? 我想在这里添加,主要是为了我自己,当我回来审查这个问题时,符号不加载,直到程序集加载,程序集不加载,直到需要。 如果断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,符号将不会被加载(并且会显示断点没有被命中)。

MVC5 Razor html.dropdownlistfor当数组中的值被选中时被选中

我正在用C#和.NET Framework 4.6.1开发ASP.NET MVC 5应用程序。 我有这个View : @model MyProject.Web.API.Models.AggregationLevelConfViewModel […] @Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, (SelectList)Model.HelperCodeTypeItems, new { id = "Configurations[0].HelperCodeType" }) ViewModel是: public class AggregationLevelConfViewModel { private readonly List<GenericIdNameType> codeTypes; private readonly List<GenericIdNameType> helperCodeTypes; public IEnumerable<SelectListItem> CodeTypeItems { get { return new SelectList(codeTypes, "Id", "Name"); } } public IEnumerable<SelectListItem> HelperCodeTypeItems { get { return new SelectList(helperCodeTypes, […]

为什么C#中的浮点运算不精确?

为什么下面的程序打印什么打印? class Program { static void Main(string[] args) { float f1 = 0.09f*100f; float f2 = 0.09f*99.999999f; Console.WriteLine(f1 > f2); } } 输出是 false