我有一个服务器线程与此代码:
public void run() {
try {
ServerSocket server;
EneaLog.printLog("Server is running.");
server = new ServerSocket(this.portnumber);
while (true) {
new EneaServerConnection(server.accept(), this.project,stopped).start();
if (stopped) {
EneaLog.printLog("Server safe-shutdown completed.");
EneaLog.printLog("Hi!");
server.close();
return;
}
}
} catch (IOException ex) {
Logger.getLogger(EneaServer.class.getName()).log(Level.SEVERE, null, ex);
project.getExceptionHandler().handler(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
和这样的关机方法:
public void shutdown() {
EneaLog.printLog("Server shutdown NOW!");
stopped = true;
}
Run Code Online (Sandbox Code Playgroud)
我希望关闭可以解除在server.accept()上等待的线程,否则我必须在服务器关闭之前等待连接.
我不能在shutdown()中执行server.close()因为我必须向注册客户端发信号通知服务器正在关闭.
有任何想法吗?
我是一名php开发人员,我正在搜索国家并以mysql数据格式列出世界列表.可以帮助我,我在哪里可以找到并下载它.
我有这个iTextSharp的演示代码
Document document = new Document();
try
{
PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create));
document.Open();
document.Add(new Paragraph("Hello World"));
}
catch (DocumentException de)
{
Console.Error.WriteLine(de.Message);
}
catch (IOException ioe)
{
Console.Error.WriteLine(ioe.Message);
}
document.Close();
Run Code Online (Sandbox Code Playgroud)
如何让控制器将pdf文档返回到浏览器?
编辑:
运行此代码确实打开Acrobat但我收到一条错误消息"文件已损坏且无法修复"
public FileStreamResult pdf()
{
MemoryStream m = new MemoryStream();
Document document = new Document();
PdfWriter.GetInstance(document, m);
document.Open();
document.Add(new Paragraph("Hello World"));
document.Add(new Paragraph(DateTime.Now.ToString()));
m.Position = 0;
return File(m, "application/pdf");
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么这不起作用?
背景
我有一个Windows服务,它使用各种第三方DLL来执行PDF文件的工作.这些操作可能会占用相当多的系统资源,并且在发生错误时偶尔会出现内存泄漏.DLL是围绕其他非托管DLL的托管包装器.
现行解决方案
我已经在一个案例中通过在专用控制台应用程序中包含对其中一个DLL的调用并通过Process.Start()调用该应用程序来缓解此问题.如果操作失败并且存在内存泄漏或未释放的文件句柄,则无关紧要.该过程将结束,操作系统将恢复句柄.
我想将这个相同的逻辑应用到我的应用程序中使用这些DLL的其他地方.但是,我对于在我的解决方案中添加更多控制台项目并编写更多可以调用Process.Start()并解析控制台应用程序输出的样板代码感到非常兴奋.
新解决方案
专用控制台应用程序和Process.Start()的优雅替代方案似乎是使用AppDomains,如下所示:http: //blogs.geekdojo.net/richard/archive/2003/12/10/428.aspx.
我在我的应用程序中实现了类似的代码,但单元测试并不乐观.我在一个单独的AppDomain中创建一个测试文件的FileStream,但不要处理它.然后我尝试在主域中创建另一个FileStream,并且由于未释放的文件锁而失败.
有趣的是,将空DomainUnload事件添加到工作程序域会使单元测试通过.无论如何,我担心可能创建"工人"AppDomains无法解决我的问题.
思考?
代码
/// <summary>
/// Executes a method in a separate AppDomain. This should serve as a simple replacement
/// of running code in a separate process via a console app.
/// </summary>
public T RunInAppDomain<T>( Func<T> func )
{
AppDomain domain = AppDomain.CreateDomain ( "Delegate Executor " + func.GetHashCode (), null,
new AppDomainSetup { ApplicationBase = Environment.CurrentDirectory } );
domain.DomainUnload += ( sender, e ) => …Run Code Online (Sandbox Code Playgroud) 我需要KVO的一些帮助,我差不多在那里.我想要做的是在树控制器中的某些内容发生变化时触发一个方法.
所以我使用这段代码注册为KVO.
[theObject addObserver: self
forKeyPath: @"myKeyPath"
options: NSKeyValueObservingOptionNew
context: NULL];
Run Code Online (Sandbox Code Playgroud)
但是,当我观察的关键路径发生变化时,如何触发方法?
还有一个额外的问题,当我将自己添加为观察者时,我希望关键路径成为我的核心数据模型中的属性,我是否已正确完成?
cocoa core-data objective-c key-value-observing cocoa-bindings
我想让我的.bashrc检测运行emacsclient是否可以代替运行emacs.基本上:
if emacs_server_is_running; then
EDITOR=emacsclient
VISUAL=emacsclient
else
EDITOR=emacs
VISUAL=emacs
fi
Run Code Online (Sandbox Code Playgroud)
我将在emacs_server_is_running实现这一目标的功能中加入什么?
我正在读K&R; 到目前为止,我做得很好,但有一些功能itoa()我不明白.在这里,itoa()他们说他们自己扭转数字.例如10是01(它们反转字符串):
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) /* record sign */
n = -n; /* make n positive */
i = 0;
do { /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0); /* delete it */
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
return; …Run Code Online (Sandbox Code Playgroud) 在回答这个问题时,KM说
如果您在SQL Server 2005之上或之上,您可以使用IF在同一过程中拥有多个查询,并且每个查询都会为其保存一个查询计划(相当于旧版本中的每个查询计划),请参阅我的答案中的文章或链接到适当的部分:sommarskog.se/dyn-search-2005.html#IF
HLGEM补充道
您也可以在早期版本的SQL Server中执行此操作.
我读了Sommarskog的优秀文章,但没有看到任何有关多个计划的内容.
在以后的研究中,我读报价这里自Gert德雷珀斯:
因为SQL Server每个存储过程只允许一个执行计划...
我不知道原始文章的日期或他所指的SQL Server版本.
有没有人有一个可靠的参考资料来讨论这个,或者更好的是,一个证明这是真的测试?
我正在尝试使用全局基本控制器来扩展我的控制器:
class BaseController extends Zend_Controller_Action {
// common controller actions
public function listAction() {
// do stuff
}
}
class IndexController extends BaseController {
// index controller specific actions
}
class LoginController extends BaseController {
// login controller specific actions
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:PHP致命错误:第3行的/var/www/Zend/project/application/controllers/IndexController.php中找不到类'BaseController'
关于如何让Zend"看到"这个控制器的任何想法?
这是要点:
我打算用asp打电话,我不关心响应.我只想发起呼叫,我不希望页面等待响应.根据文档,它应该看起来像这样:
dim xmlhttp : set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, true '' setting the 'asynchronous' option to 'true'
xmlhttp.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
xmlhttp.setRequestHeader "Content-Length", Len(XMLData)
xmlhttp.send XMLData
Run Code Online (Sandbox Code Playgroud)
这在同步调用时很有效,但当我将ansynchronous选项翻转为'true'时,什么都不会触发.我可以从互联网上收集到的是用户执行以下操作:
While xmlhttp.readyState <> 4
xmlhttp.waitForResponse 1000
Wend
Run Code Online (Sandbox Code Playgroud)
如果你在等待回应,我是否真的疯了似乎不再是异步电话?
xmlhttp.waitForResponse 1在发送之后将该行放置正确将导致请求触发,但同样,我不想等待一秒钟.
有什么想法吗?
c# ×2
sql ×2
.net-3.5 ×1
appdomain ×1
asp-classic ×1
asp.net ×1
asp.net-mvc ×1
asynchronous ×1
bash ×1
c ×1
class ×1
cocoa ×1
controller ×1
core-data ×1
itextsharp ×1
java ×1
kr-c ×1
mysql ×1
objective-c ×1
pdf ×1
php ×1
shell ×1
sockets ×1
sql-server ×1
t-sql ×1