我正在为服务器编写一个监听器线程,目前我正在使用:
while (true){
try {
if (condition){
//do something
condition=false;
}
sleep(1000);
} catch (InterruptedException ex){
Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我遇到了运行函数吃掉所有cpu时间循环的问题.睡眠功能有效,但它似乎是一个临时修复,而不是解决方案.
是否有一些函数会阻塞,直到变量'condition'变为'true'?或者是不断循环标准的等待方法,直到变量的值发生变化?
我创建了一个模态JDialog框,其上有一个自定义绘图和一个JButton.当我单击JButton时,JDialog框应该关闭,并且应该返回一个值.
我在父JFrame中创建了一个名为setModalPiece的函数,它接收一个值并将其设置为本地JFrame变量.
问题是从JDialog框中看不到此函数(即使JDialog框具有对父JFrame的引用).
两个问题:1)有没有更好的方法将值从JDialog框返回到其父JFrame?
2)为什么不能使用传递给JDialog的JFrame的引用来访问我的JFrame函数setModalPiece?
我有一个java项目,我希望打包和出售.如何创建一个将在其他Windows计算机上安装我的程序的.msi文件?如果有任何教程,请指导我们.如果这与如何创建.msi文件有关,我也在使用Eclipse.
谢谢
我正在创建一个多次使用2个嵌入式服务器功能的查询.
问题:函数搜索一个相当大的表,它们需要很长时间才能执行.
目标:使用子查询就像它是一个表一样,这样我就可以引用列而不运行函数来多次生成列.
Example Pseudocode:
Select general.column1, general.column2, general.column1-general.column2
from (select package.function1('I take a long time') column1,
package.function2('I take even longer') column2,
normal_column
from bigtable) general;
Run Code Online (Sandbox Code Playgroud)
Example Pseudocode:
Select general.column1, general.column2, general.column1-general.column2
from (select package.function1('I take a long time') column1,
package.function2('I take even longer') column2,
normal_column
from bigtable) general;
Run Code Online (Sandbox Code Playgroud)
当我运行我的代码时,general.column1将引用column1语句中的函数,而不是它返回的数据(这最终是我所追求的).
我对SQL很新,所以感谢任何帮助,如果您需要更多信息,我会尽力提供.
谢谢!
我正在尝试调试oracle表单应用程序.在生产中,当我加载应用程序时,我收到一个错误:java.lang.ClassNotFoundException:oracle.forms.engine.Main
我不确定导致这个问题的原因.我现在一直在搜索论坛半天,看起来它可能与java版本问题有关.
我已经包含了(略微修改以保护我的公司)java控制台输出,如果我正确读取它,看起来像证书需要重新打包.
但是,当我查看该网站的证书时,它表示已通过verisign验证.
我正在使用IE 9来尝试查看表单应用程序,我得到一个:java.lang.ClassNotFoundException:oracle.forms.engine.Main
在Java控制台中,我得到以下输出:
Java Plug-in 1.6.0_45
Using JRE version 1.6.0_45-b06 Java HotSpot(TM) Client VM
User home directory = C:\Users\my_username
network: Cache entry not found [url: https://company_site.ca:4446/forms/java/frmall.jar, version: null]
network: Connecting https://company_site.ca:4446/forms/java/frmall.jar with proxy=DIRECT
network: Connecting http://company_site.ca:4446/ with proxy=DIRECT
javax.net.ssl.SSLException: Received fatal alert: unexpected_message
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source) …
我正在使用以下代码查询LinqToExcel中的excel文件:
var excelFile = new LinqToExcel.ExcelQueryFactory(@"\"+txtFileName.Text.Replace(@"\\",@"\"));
var properties = from p in excelFile.Worksheet<Property>()
where AssessmentID != null
select p;
foreach (var autoP in properties)
doSomething();
Run Code Online (Sandbox Code Playgroud)
当我查看运行时调试器时,我会在查看属性变量的"结果视图"时看到"InvalidCastException" .所以,我假设我的班级定义有一些时髦的东西.我还假设我不需要将类的所有成员映射到excel文件,而只需要我认为合适的那些.
所以,这里也是类定义:
public class Property
{
[DataMember]
public int? Year { get; set; }
[DataMember]
public string ChangeReason { get; set; }
[DataMember]
public string AssessmentID { get; set; }
[DataMember]
public string CallBackNotes { get; set; }
[DataMember]
public string InspectionNotes { get; set; }
[DataMember]
public string Notes { get; …
Run Code Online (Sandbox Code Playgroud) 给定一个IMethodSymbol
我如何创建一个MethodDeclarationSyntax
?
背景:
对于代码修复,我将实现接口的一个类中的方法复制到实现不同接口的另一个类中。
因此,我需要修改复制方法的一些内容(参数、命名空间等)。我想修改IMethodSymbol
,将符号转换为 a MethodDeclarationSyntax
,然后将符号添加到新类中。
我已经能够通过使用来做到这一点DeclaringSyntaxReferences
属性来做到这一点,但是当原始类驻留在 nuget 包中时,这不起作用。
使用DeclaringSyntaxReferences
(以及我自己的一些代码)我能够执行以下操作:
public static MethodDeclarationSyntax[] ToMethodDeclarationSyntax(this IMethodSymbol methodSymbol)
{
var namespaceValue = methodSymbol.ContainingNamespace.GetNameSpaceIdentifier();
var syntaxReference = methodSymbol.DeclaringSyntaxReferences;
var syntaxNodes = syntaxReference.Select(syntaxRef => syntaxRef.GetSyntax());
var methodNodes = syntaxNodes.OfType<MethodDeclarationSyntax>();
var methodExpression = methodSymbol.CreateExpressionSyntax();
return methodNodes
.Select(mds => mds
.WithExpressionBody(methodExpression)
.WithReturnType(SyntaxFactory.QualifiedName(namespaceValue, SyntaxFactory.IdentifierName(mds.ReturnType.ToString())))
.WithParameterList(methodSymbol.GetFullyQualifiedParameterListSyntax())
)
.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法从 IMethodSymbol 生成 MethodDeclarationSyntax 而不使用DeclaringSyntaxReferences
?
谢谢!
我正在尝试在java中创建一个服务器,它将同时保持多达4个连接.我认为将相关信息保存在一个数组中可以达到我的目的,但是我遇到了一些麻烦.
这是我创建的课程:
import java.net.*;
import java.io.*;
public class tcpConnects{
private ObjectInputStream input;
private ObjectOutputStream output;
private int player;
public tcpConnects(int playerNumber, Socket connect) {
// TODO Auto-generated method stub
try{
System.out.println("create InputStream");
input= new ObjectInputStream(connect.getInputStream());
System.out.println("create OutputStream");
output= new ObjectOutputStream(connect.getOutputStream());
System.out.println("streams created");
//sendData("Welcome!");
player=playerNumber;
}catch (IOException ioException){
ioException.printStackTrace();
}
}
public ObjectInputStream getInput(){
return input;
}
public void setInput(ObjectInputStream in){
input=in;
}
public ObjectOutputStream getOutput(){
return output;
}
public void setOutput(ObjectOutputStream out){
output=out;
}
public int getPlayer(){
return player;
} …
Run Code Online (Sandbox Code Playgroud) 我在 F# 中有以下类型:
type CodeNameError(CodeNameCombination: (Code*Name)[]) =
member this.CodeNameCombinations = CodeNameCombination
Run Code Online (Sandbox Code Playgroud)
有没有办法将 (Code*Name)[] 转换为 F# 中的命名元组数组?在 c# 中我会做类似的事情:
public CodeNameError((Code code, Name name)[] codeName)
{
CodeNameCombination = codeName
}
Run Code Online (Sandbox Code Playgroud)