Вы распорядились работником, который предоставлял предметы, а не подписчиком.
Чтобы прекратить получать предметы, попробуйте
val compositeDisposable = CompositeDisposable()
compositeDisposable.add(
Observable
.create { e: ObservableEmitter<String> ->
val worker = Schedulers.io().createWorker()
e.setDisposable(worker)
worker.schedule {
for (i in 1..5) {
if (i == 3) {
compositeDisposable.dispose() //changed here
}
e.onNext("Event $i on thread ${Thread.currentThread().name}")
}
}
}
.subscribe(
{ s ->
Log.d(TAG, "createObservableWithDisposable onNext msg=$s")
},
{ e ->
Log.d(TAG, "createObservableWithDisposable", e)
},
{
Log.d(TAG, "createObservableWithDisposable onComplete")
}
)
)
Вы можете использовать метод Window.DragMove в событии нажатия мыши в окне.
Предыдущие ответы совпали с ответом, но полный пример таков:
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DragMove();
}
}