小编dmi*_*tru的帖子

如何更新SeekBar不触发OnSeekBarChangeListener?

我有一个附带OnSeekBarChangeListener实例的SeekBar.每次用户更改值时,它的方法onProgressChanged()都会被触发.没关系.

但后来我试图像这样更新SeekBar的进度:

seekBar.setProgress(value);

我希望不会发生任何事件 - 只是SeekBar的进展会发生变化.但是onProgressChanged()在这种情况下也会被调用.

如何在不触发事件的情况下更改SeekBar的进度?

events android seekbar android-widget

5
推荐指数
1
解决办法
3115
查看次数

为什么不能将C标准I/O与套接字一起使用

人们经常说在使用套接字时不应该使用C标准I/O函数(比如fprintf(),fscanf()).

我不明白为什么.我想如果原因只是它们的缓冲性质,那么每次输出时都可以刷新输出缓冲区,对吧?

为什么每个人都使用UNIX I/O函数?在使用标准C功能是否合适且正确的情况下是否存在?

c unix sockets network-programming

4
推荐指数
1
解决办法
1693
查看次数

为什么MPI_Sendrecv阻止?

假设我有n个进程,并且每个进程都拥有一段本地数据,比如一个int.

现在我想重新实现MPI_Allreduce()函数,即计算所有这些整数的全局和,然后将得到的和返回给进程.

我试着像在下面的代码中那样做:

  int temp;
  int my_sum = temp = my_data;
  for (int i = 1; i < size; ++i) {
    int partner = (my_rank + 1) % size;
    MPI_Sendrecv_replace(&temp, 1, MPI_INT, 
                         partner, 0, 
                         my_rank, 0, 
                         MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    my_sum += temp;
  }
Run Code Online (Sandbox Code Playgroud)

所以进程在一个环形通信中进行通信,但它正在阻塞.为什么?如何更改代码以使其正常工作?

注意:请不要建议问题的替代(更好)解决方案(显然,其中之一是使用MPI_Allreduce()函数).我的目标是理解为什么这段代码片段不能正常工作.

c parallel-processing mpi

3
推荐指数
1
解决办法
1323
查看次数

是否可以中断Scanner.hasNext()

我有一个读取用户输入并通过网络发送的线程.线程就像这样循环:

sin = new Scanner(System.in);

while (sin.hasNextLine()) {
    if (this.isInterrupted())
        break;

    message = sin.nextLine();

    // do processing...        
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试中断线程时,它不会退出该hasNextLine()方法.

我怎么能真正退出这个循环?

java io multithreading

2
推荐指数
1
解决办法
1861
查看次数

cout如何区分基本类型?

由于我从C转换到C++,我对STL的格式输出有疑问.ostreams如何告诉另一种基本类型?

在C中,它的printf和格式化字符串非常简单,但在C++中,ostreams会以某种方式自动区分基本类型.这让我很困惑.

例如,在以下代码中,

int i;
float f;

std::cout << i << std::endl;
std::cout << f << std::endl;
Run Code Online (Sandbox Code Playgroud)

cout如何"知道" 是一个int而f是一个浮点数?

c++ types cout

1
推荐指数
1
解决办法
149
查看次数