草庐IT

编译ffmpeg

全部标签

c# - 编译日期和时间

是否有一些聪明的方法来获取构建/编译dll的日期和时间?我正在使用程序集版本编号和反射来在部署应用程序时检索和显示此信息。但在某些情况下,知道dll实际编译的时间比自动递增的版本号更方便。由于应用程序的部署方式,我认为dll文件本身的修改日期不可靠。Dimassemblies=AppDomain.CurrentDomain.GetAssembliesDimassemblyNameAsStringDimassemblyVersionAsStringForEachassemblyInassembliesassemblyName=assembly.GetName.Name.ToStringa

c# - 编译的 C# lambda 表达式性能与叠层

考虑这个类://////Dummyimplementationofaparserforthepurposeofthetest///classParser{publicListReadList(FuncreadFunctor){returnEnumerable.Range(0,10).Select(i=>readFunctor()).ToList();}publicintReadInt32(){return12;}publicstringReadString(){return"string";}}我尝试使用已编译的lambda表达式树生成以下调用:Parserparser=newPars

c# - finally block when 后编译器生成无限循环

我使用的是针对.Net4.6.2的标准VS2015编译器。编译器在finallyblock失败后发出无限循环。一些例子:调试:IL_0000:nop.try{IL_0001:nopIL_0002:nopIL_0003:leave.sIL_000c}//end.tryfinally{IL_0005:nopIL_0006:br.sIL_000a//loopstart(head:IL_000a)IL_0008:nopIL_0009:nopIL_000a:br.sIL_0008//endloop}//endhandler//loopstart(head:IL_000c)IL_000c:br.s

c# - VB.NET WithEvents 关键字行为 - VB.NET 编译器限制?

我正在努力变得像熟悉VB.NET(我工作场所使用的语言)一样熟悉C#。学习过程中最好的事情之一是,通过学习另一种语言,您往往会更多地了解您的主要语言——像这样的小问题会弹出:根据我发现的来源和过去的经验,VB.NET中声明为WithEvents的字段能够引发事件。我知道C#没有直接等效项——但我的问题是:VB.NET中没有this关键字的字段不能引发事件,有没有办法在C#中创建同样的行为?VB编译器是否简单地阻止这些对象处理它们的事件(同时实际上允许它们像往常一样引发事件)?我只是好奇;我对这个问题没有任何特定的应用...... 最佳答案

c# - 如何修复 'T' 是 'type parameter' 但被用作 'variable' 编译错误

我需要检查泛型类型参数T是MyEntity还是它的子类。下面的代码会导致这个编译器错误:'T'isa'typeparameter'butisusedlikea'variable'如何修复?publicclassMyEntity{}staticvoidTest(){//Error34'T'isa'typeparameter'butisusedlikea'variable'if(TisMyEntity){}} 最佳答案 您可以使用IsAssignableFromType上的方法检查是否有一个Type可以分配给另一个。if(typeof(

c# - 如何限制 FFMpeg CPU 使用率?

我在C#Windows窗体应用程序中调用FFMpeg。由于它使用了太多的CPU(总是超过90%),我的线程都无法继续工作。有没有办法限制这种CPU使用率?我尝试将Process.PriorityClass设置为PriorityClass.BelowNormal但这完全阻止了ffmpeg进程。我确信有办法做到这一点,因为我看到很多程序都使用ffmpeg。请帮忙。 最佳答案 你不能将FFMpeg限制为CPU使用的百分比,但你可以在你的FFMpeg调用中设置-threads参数,如果你有4个内核,请尝试将其设置为-threads2这应该会

c# - MS C# 编译器和非优化代码

注意:我注意到我发布的示例中存在一些错误-编辑以修复它如果您不启用优化,官方C#编译器会做一些有趣的事情。例如,一个简单的if语句:intx;//...//if(x==10)//dosomething优化后会变成下面这样:ldloc.0ldc.i4.s10ceqbne.un.sdo_not_do_something//dosomethingdo_not_do_something:但是如果我们禁用优化,它就会变成这样:ldloc.0ldc.i4.s10ceqldc.i4.0ceqstloc.1ldloc.1brtrue.sdo_not_do_something//dosomethingd

c# - 似乎表达式的某些部分可能在编译时被评估,而其他部分在运行时

可能是一个愚蠢的问题,因为我可能已经回答了我的问题,但我只是想确保我没有遗漏一些东西常量表达式在编译时在检查的上下文中计算。我认为不应在编译时计算以下表达式,因为我假设C#仅当左侧的所有操作数都是常量时才将特定表达式视为常量表达式:inti=100;longu=(int.MaxValue+100+i);//error相反,编译器似乎将两个操作数都是常量的任何子表达式视为常量表达式,即使表达式中的其他操作数是非常量?因此编译器可能只在编译时计算表达式的一部分,而表达式的剩余部分(包含非常量值)将在运行时计算-->我假设在下面的例子中只有(200+100)在编译时被评估inti=100;l

c# - 大量警告是否会使 C# 编译时间变长?

我们有一个包含数千条警告的大型解决方案。如果我删除所有警告(手动或使用工具),编译解决方案的时间是否会减少?我试过将冗长级别降低到无声,但没有用。最大详细级别也没有区别。 最佳答案 不,它不会对编译时间产生重大影响。与FXCop等特殊工具不同,编译器本身不执行任何复杂的检查,因此对于它必须执行的其他逻辑而言,它是微不足道的。实际上可能会稍微降低性能的是从命令行编译时将大量消息输出到控制台窗口。在这种情况下,将输出重定向到文件是一种可能的改进。但是,修复那些生成警告的代码部分是个好主意。您最终将获得更高质量的代码库并减少一些原本更容易

c# - 为什么 C# 编译器不抛出 null 的逻辑比较?

昨天我和一个friend一起吃午饭,他们提示C#中的null。他说null是不合逻辑的。我决定验证他的说法,所以我测试了一些简单的逻辑命题:Console.WriteLine(null==null);//True//Console.WriteLine(null==!!null);//BOOMConsole.WriteLine(10>=null);//FalseConsole.WriteLine(10=null));//TrueConsole.WriteLine(!(10检查相等性似乎很简单,这正是我所期望的。然而,大于/小于语句是逻辑上的矛盾,我觉得这很令人困惑!这些不应该扔吗?否定操