草庐IT

实际上

全部标签

c# - Process.Dispose() 实际上做了什么?

在C#中,classProcess继承自实现IDisposable的classComponent,因此我可以调用Dispose()在任何Process对象上。我真的必须这样做吗?我怎么知道我是否真的必须这样做?假设我有以下代码:varallProcesses=System.Diagnostics.Process.GetProcesses();varprocessesNames=processes.Select(p=>p.ProcessName);//outputprocessnameshere现在看起来我有一个Process对象数组,我设计了一个try-finally来遍历该数组和Di

c# - Process.Dispose() 实际上做了什么?

在C#中,classProcess继承自实现IDisposable的classComponent,因此我可以调用Dispose()在任何Process对象上。我真的必须这样做吗?我怎么知道我是否真的必须这样做?假设我有以下代码:varallProcesses=System.Diagnostics.Process.GetProcesses();varprocessesNames=processes.Select(p=>p.ProcessName);//outputprocessnameshere现在看起来我有一个Process对象数组,我设计了一个try-finally来遍历该数组和Di

c# - 传递可以 "fit"接口(interface)的 C# 参数,但实际上并不实现它

注意:我知道这在实践中是一个糟糕的想法;我只是好奇CLR允许您做什么,目标是创建某种“在创建类后修改它”的预处理器。假设我有以下类,它是在另一个程序集中定义的,所以我无法更改它。classPerson{publicstringGreet()=>"Hello!";}我现在定义一个接口(interface)和一个方法,如下所示:interfaceIGreetable{stringGreet();}//...voidPrintGreeting(IGreetableg)=>Console.WriteLine(g.Greet());Person类没有显式实现IGreetable,但它可以在不对其

c# - 传递可以 "fit"接口(interface)的 C# 参数,但实际上并不实现它

注意:我知道这在实践中是一个糟糕的想法;我只是好奇CLR允许您做什么,目标是创建某种“在创建类后修改它”的预处理器。假设我有以下类,它是在另一个程序集中定义的,所以我无法更改它。classPerson{publicstringGreet()=>"Hello!";}我现在定义一个接口(interface)和一个方法,如下所示:interfaceIGreetable{stringGreet();}//...voidPrintGreeting(IGreetableg)=>Console.WriteLine(g.Greet());Person类没有显式实现IGreetable,但它可以在不对其

c# - 您如何获得在声明中实际输入的变量名称?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:FindingtheVariableNamepassedtoaFunctioninC#下面的类包含字段城市。我需要动态确定在类声明中键入的字段名称即我需要从对象city的实例中获取字符串“city”。我试图通过在DoSomething()中检查它的类型来做到这一点,但在调试器中检查类型的内容时找不到它。这可能吗?publicclassPerson{publicstringcity="NewYork";publicPerson(){}publicvoidDoSomething(){Typet=city.GetTy

c# - 您如何获得在声明中实际输入的变量名称?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:FindingtheVariableNamepassedtoaFunctioninC#下面的类包含字段城市。我需要动态确定在类声明中键入的字段名称即我需要从对象city的实例中获取字符串“city”。我试图通过在DoSomething()中检查它的类型来做到这一点,但在调试器中检查类型的内容时找不到它。这可能吗?publicclassPerson{publicstringcity="NewYork";publicPerson(){}publicvoidDoSomething(){Typet=city.GetTy

c# - 什么实际处理 Windows 壁纸的绘制?

我正在尝试进行一个项目,在该项目中我可以使用opengl/directx或GDI为Windows7墙纸制作动画。我研究了windows桌面窗口的布局方式,我弄清楚了整个“Progman”->“SHELLDLL_DefView”->“SysListView32”层次结构。我尝试HookSysListView32的WndProc,并尝试使用注入(inject)的c#dll处理消息,这样当我使用控制面板->个性化菜单强制更改墙纸时,我可以防止桌面绘制墙纸。这些都没有真正阻止墙纸的更新,所以我认为explorer.exe实际上并不处理墙纸的绘制。为了证实这一点,我关闭了explorer.exe

c# - 什么实际处理 Windows 壁纸的绘制?

我正在尝试进行一个项目,在该项目中我可以使用opengl/directx或GDI为Windows7墙纸制作动画。我研究了windows桌面窗口的布局方式,我弄清楚了整个“Progman”->“SHELLDLL_DefView”->“SysListView32”层次结构。我尝试HookSysListView32的WndProc,并尝试使用注入(inject)的c#dll处理消息,这样当我使用控制面板->个性化菜单强制更改墙纸时,我可以防止桌面绘制墙纸。这些都没有真正阻止墙纸的更新,所以我认为explorer.exe实际上并不处理墙纸的绘制。为了证实这一点,我关闭了explorer.exe

c# - "thread safe"的真正含义......在实际中

请容忍我的新手问题..我尝试使用ghostscript、ASP.NET和C#将PDF转换为PNG。但是,我还读到ghostscript不是线程安全的。所以我的问题是:“ghostscript不是线程安全的”实际上是什么意思?如果我在许多并发用户同时访问它的实时ASP.NET(aspx)Web应用程序中使用它会产生什么影响?我还从另一个网站了解到ghostscript版本的主要功能。8.63是多线程渲染。这是否意味着我们的线程安全问题现在已经解决了?ghostscript线程现在安全吗?我也在评估PDFTron的PDF2Image,它应该是线程安全的。但是每个CPU的许可证并不便宜。是否

c# - "thread safe"的真正含义......在实际中

请容忍我的新手问题..我尝试使用ghostscript、ASP.NET和C#将PDF转换为PNG。但是,我还读到ghostscript不是线程安全的。所以我的问题是:“ghostscript不是线程安全的”实际上是什么意思?如果我在许多并发用户同时访问它的实时ASP.NET(aspx)Web应用程序中使用它会产生什么影响?我还从另一个网站了解到ghostscript版本的主要功能。8.63是多线程渲染。这是否意味着我们的线程安全问题现在已经解决了?ghostscript线程现在安全吗?我也在评估PDFTron的PDF2Image,它应该是线程安全的。但是每个CPU的许可证并不便宜。是否