1
19
工作 在ASP.NET和服务下,它不是 支持 测试将处理后者,监控将提醒您注意前者。但是,如果/当你有问题时,不要期望能够打电话给PSS并要求解决。 那么,你有什么选择?好吧,如果你不需要一个完全支持的路线,你也不期望极端负载-很多人无视MSDN的警告,成功地使用了System.Drawing。他们中的一些人被咬过,但成功的故事要比失败的故事多得多。 如果您想获得支持,那么您需要知道您是否以交互方式运行。就我个人而言,我可能会让托管应用程序在某个地方或其他地方设置一个非交互标志。毕竟,应用程序处于最佳位置,可以确定他们是否在托管环境中和/或想要冒GDI+问题的风险。 但是,如果你想自动检测你的环境,我想有比我们提供的更糟糕的答案 right here on SO 为了服务。总之,您可以检查EntryAssembly以查看它是否继承自ServiceBase,或者尝试访问System.Console。对于ASP.NET,同样,检测HttpContext.Current应该足够了。 认为 编辑:浏览MSDN,我记得它实际上是一个 Window Station GetProcessWindowStation() 返回当前窗口站的句柄。把那个把手交给 GetUserObjectInformation() 我会给你一个 USEROBJECTFLAGS 或者, EnumWindowsStations 将给你一个你可以检查的电台列表-WinSta0是交互式的。 但是,是的,我仍然认为让应用程序设置一个属性或其他东西是最好的选择 很 再次编辑:7年后,我陷入了 Environment.UserInteractive 何女士 does the exact GetProcessWindowStation dance 希望 速度更快,但风险稍高的System.Drawing path),但UserInteractive似乎是一个很好的默认设置,而无需pinvoke自己。 |
2
4
我认为确定代码使用是否安全的唯一方法是使用{}语句测试、监视和包装任何具有外部资源的对象。 |
3
1
你可以用 TextRenderer TextRenderer比Graphics.MeasureString、FWIW慢得多。 |
4
0
这可能与GDI子系统需要STA线程有关。如果是这种情况,请调查在所涉及的aspx页面的@PAGE指令中指定ASPCOMPAT=TRUE。这将在STA线程IIRC中运行aspx页。 -奥辛 |
5
-1
您可以将System.Drawing.dll复制到应用程序的bin中,然后以这种方式使用它。这可能会保证它的可用性。 只需右键单击应用程序中的引用并更改 复制本地 符合事实的
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |