在Windows窗体上,我有一个DataGridView控件,其中包含由数据源填充的记录(数据绑定).每条记录都呈现一个数据对象.
并非所有行都显示:例如,前10行.因此用户可以向下滚动以查看其他记录.没什么特别的.
但是当用户在滚动后点击一行时,行对象的数据属性正在改变,这会刷新DataGridViewand- 它"滚动"到datagrid的顶部(可能整个DataGridView都是刷新的).这是不可取的.
如何在记录更新期间保持当前滚动位置?
我realloc在循环的每次迭代中使用,迭代次数for超过10000次.
这是一个好习惯吗?realloc如果被调用很多次会导致错误吗?
我有一个数组,其中包含声明如下的整数值:
int data[] = new int[n];
Run Code Online (Sandbox Code Playgroud)
每个值都需要处理,我将工作分成几部分,以便它可以由不同的线程处理.处理期间不会修改数组.
所有处理线程可以同时读取数组的不同部分吗?或者我必须使用锁?
换句话说:这个工单是否是线程安全的?
Array is created and filled
Threads are created and started
Thread 0 reads data[0..3]
Thread 1 reads data[4..7]
Thread 2 reads data[8..n]
Run Code Online (Sandbox Code Playgroud) class For1
{
public static void main(String args[])
{
int a = 0;
for(;;)
{
break;
System.out.println(a); //Line 1
++a;//Line 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道第1行/第2行永远不会执行.但我仍然不明白为什么抛出编译时错误.我收到"无法访问的语句"编译错误.
这是否意味着编译器检查它是否能够编译所有分支/代码行?
我必须准备一个web服务来接受已定义的wsdl结构.我按照这里的教程,在这里可以下载测试项目的源代码.
对于像这样的xsd:
<xs:element name="getCountryRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
应用程序返回的请求的Wsdl操作正常,如下所示:
<wsdl:binding name="CountriesPortSoap11" type="tns:CountriesPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getCountry">
<soap:operation soapAction=""/>
<wsdl:input name="getCountryRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getCountryResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Run Code Online (Sandbox Code Playgroud)
但是当我将xsd更改为(元素名称中没有'Request')时:
<xs:element name="getCountry">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
wsdl无效,并且没有<input>指定:
<wsdl:binding name="CountriesPortSoap11" type="tns:CountriesPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getCountry">
<soap:operation soapAction=""/>
<wsdl:output name="getCountryResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?如何Request在wsdl中将无元素作为soap操作输入正确显示?
我一直在Android中绘制图形.那里有很多示例应用程序,但我总能看到的一件事是lockCanvas.有人可以解释得更近,因为我真的没有得到它,也因为我认为理解未来的编程很重要吗?
一个例子:
try {
c = panel_thread.getHolder().lockCanvas(null);
synchronized (panel_thread.getHolder()) {
panel_thread.update();
panel_thread.onDraw(c);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我现在所拥有的.我该怎么解释这个?同步做什么?为什么将canvas-object分配到getHolder和lockCanvas很重要?
这部分也令人困惑:
panel_thread.getHolder().unlockCanvasAndPost(c);
Run Code Online (Sandbox Code Playgroud)
为什么这有必要?我真的需要一个更细致的解释.:)
假设我有一个服务器并且客户端连接到服务器。服务器可以通过公共 IP 访问。
我想“转发”连接,以便客户端可以直接相互连接,而无需中间的服务器。
我不知道这是否可能,我自己也找不到办法做到这一点。
其他假设:
我正在寻找一个严格的软件解决方案,而无需重新配置路由器、开放端口等。
我想实现这一点的原因是减少服务器上的负载。一旦两个客户端关联在一起,就没有真正的需要(技术客户端除外)继续使用服务器作为某种代理。直接客户端连接也会减少连接的延迟。
目前我正在开发一个嵌入式项目.我使用的是IAR Embedded Workbench IDE,目标平台是基于8051的微控制器.是否可以使用Valgrind工具来检查我写的代码?
我正在使用Eclipse Luna Service Release 2(4.4.2),Java 8 u51.
我正在尝试创建一个方法,该方法将基于另一个方法参数创建传递对象的实例.原型简化为
public <T> T test(Object param, T instance) {
Constructor<?> constructor = instance.getClass().getConstructors()[0]; // I actually choose a proper constructor
// eclipse reports "Unhandled exception type InvocationTargetException"
Function<Object, Object> createFun = constructor::newInstance;
T result = (T) createFun.apply(param);
return result;
}
Run Code Online (Sandbox Code Playgroud)
在线Function声明eclipse报告Unhandled exception type InvocationTargetException编译器错误.我需要Function稍后在流中使用.
我试图添加各种try/catch块,抛出声明,但没有修复此编译器错误.
如何使这段代码工作?
如何立即退出或停止线程?
当用户输入答案时,如何立即停止?我想让它重置每一个问题.
这是涉及线程的代码
int q1() {
int timer_start;
char ans[] = "lol";
char user_ans[50];
timer_start = pthread_create( &xtimer,NULL,(void*)timer_func,(void*)NULL);
printf("What is the capital city of Peru?\n");
while(limit){
scanf("%s",user_ans);
if(limit)
{
if(!strcmp(user_ans, ans))
{
// printf("YAY!\n");
score++;
// q2();
}
else
{
game_over();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)