It is working well at my side, please will you try as below
***********************************************
import threading
class test_wizard(models.TransientModel):
_name = 'test.wizard'
def main_method(self):
#Code of method
print "done"
return True
@api.one
def test_thread(self):
thread_var = threading.Thread(target=self.main_method)
thread_var.start()
class test_module(models.Model):
_name = 'test.module'
@api.multi
def test(self):
mod_obj = self.pool.get('ir.model.data')
res_id = mod_obj.get_object_reference(self._cr, self._uid, 'test_module', 'view_test_wizard_form')
return {
'name':_("Test Wizard"),
'type': 'ir.actions.act_window',
'res_model': 'test.wizard',
'view_mode': 'form',
'view_type': 'form',
'view_id': res_id[1],
# 'res_id': res_id[1],
'nodestroy': True,
'target': 'new',
# 'domain': '[]',
# 'context': dict(context, active_ids=ids)
}
************************
<record id="view_test_wizard_form" model="ir.ui.view">
<field name="name">test.wizard</field>
<field name="model">test.wizard</field>
<field name="arch" type="xml">
<form string="Test wizard">
<button name="test_thread" type="object" class="oe_highlight" string="Test"/>
</form>
</field>
</record>